在R中替换多个col名称的相同部分

kb5ga3dv  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(131)

在创建了一些伪变量之后,R创建了一些无用的列名:它们以“.data_”开头

a <- as.factor(c("green", "yellow", "blue"))
b <- as.factor(c("blue", "yellow", "green"))

df <- data.frame(a, b)

library(fastDummies)
dummy1 <- dummy_cols(df$a, remove_selected_columns = TRUE)
dummy2 <- dummy_cols(df$b, remove_selected_columns = TRUE)

我需要将dummy重新组合在一个 Dataframe 中,那么如何将每列中的“.data_”部分替换为它所属的变量的名称(例如,dummy1的a_blue,a_绿色,a_yellow和dummy2的b_blue,b_green,b_yellow)?
我找到了rename(),但我必须单独对每个变量使用它。有没有更自动化的方法?
编辑:在使用dummy_cols()之后,输出是一个 Dataframe ,其中包含与之前为该变量设置的类别一样多的新变量。因此,具有3个类别黄色,蓝色和绿色的a变成了一个具有3列的 Dataframe ,称为.data_blue,.data_green,.data_yellow。这些新变量是二进制的。也许这有助于说明我的意思。

ncecgwcz

ncecgwcz1#

这个功能想要一次吃完整个蛋糕。

cols <- c("a", "b")
dummy_cols(df[cols], remove_selected_columns=TRUE)
#   a_blue a_green a_yellow b_blue b_green b_yellow
# 1      0       1        0      1       0        0
# 2      0       0        1      0       0        1
# 3      1       0        0      0       1        0

相关问题