【发布时间】:2018-01-19 14:57:49
【问题描述】:
我正在研究 R。
我有一个包含 2 列的数据框:一个标识符,其中一些标识符多次出现,以及一个分类变量。
每个标识符可以有多个类别。
我正在尝试将其转换为仅包含虚拟变量而不是分类变量的数据集。这也要求每个标识符变量只有一行,即使有些在原始数据框中多次出现(为了匹配多个类别)。
换句话说,我正在尝试改变这个:
data.frame(ID = c("A", "B", "C", "A", "C", "B"),
Color = c("Red", "Blue", "Green", "Blue", "Blue", "Red"))
进入这个:
data.frame(ID = c("A", "B", "C"),
Color_Red = c(1, 1, 0),
Color_Blue = c(1, 1, 1),
Color_Green = c(0, 0, 1))
有什么想法吗?
非常感谢!
【问题讨论】:
-
用
table怎么样? -
谢谢你,显然效果很好我不知道为什么我没有想到它!
-
对于寻找此页面以寻找虚拟变量的传统含义的其他人,请参阅
model.matrix和此答案:stackoverflow.com/a/12843557/8262231 -
@W.Murphy 对于查看包
dummies和函数dummy或dummy.data.frame也很有用。这里:cran.r-project.org/web/packages/dummies/dummies.pdf
标签: r