【发布时间】:2021-01-12 12:48:39
【问题描述】:
在创建了一些虚拟变量之后,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)
我需要将虚拟对象重新组合到一个数据框中,那么如何将每列中的“.data_”部分替换为其所属变量的名称(例如,a_blue、a_green、a_yellow 用于 dummy1 和 b_blue, b_green, b_yellow 代表假人 2)?
我找到了 rename(),但我必须单独为每个变量使用它。有没有更自动化的方法?
编辑: 使用 dummy_cols() 后,输出是一个数据框,其中包含与您之前对该变量的类别一样多的新变量。因此,具有 3 个类别的黄色、蓝色和绿色成为一个具有 3 列的数据框,称为 .data_blue、.data_green、.data_yellow。这些新变量是二进制的。也许这有助于说明我的意思。
【问题讨论】:
-
dummy_cols是做什么的? -
它将分类变量变成一个虚拟变量。所以 a 变成了一个具有 3 个二进制变量的数据框
-
@Elena 你有很多不同的数据框
dummy1, ..., dummy2还是一个包含所有变量及其所有类别的大型数据框? -
许多不同的。每个变量一个(我有 21 个变量)需要合并为一个。我尝试在整个数据帧上使用 dummy_cols 但结果很奇怪。如果你知道不同的方式,我很想听听。
标签: r columnname