【发布时间】:2021-05-20 17:25:45
【问题描述】:
我目前正在使用以前收集的数据框。参与者种族目前分为几个类别(Race_White、Race_Black 等),其中每个参与者的值为 1 表示是或 2 表示否。例如,不认同任何其他种族的白人参与者将有 1 in Race_White 列和所有其他 Race_X 列中的 2。
我想将这些合并到一个“种族”列中,其中 1 = 白色,2 = 黑色等。有没有人知道一段很好的代码/函数/包可以有效地做到这一点?
这是我一直在尝试的:
Race <- mutate(mydata,
Race = case_when(
mydata$Race_White = 1 & mydata$Race_Black = 2 & mydata$Race_Asian = 2 & mydata$Race_NoReply = 2 ~ 1,
mydata$Race_White = 2 & mydata$Race_Black = 1 & mydata$Race_Asian = 2 & mydata$Race_NoReply = 2 ~ 2,
mydata$Race_White = 2 & mydata$Race_Black = 2 & mydata$Race_Asian = 1 & mydata$Race_NoReply = 2 ~ 3,
mydata$Race_White = 2 & mydata$Race_Black = 2 & mydata$Race_Asian = 2 & mydata$Race_NoReply = 1 ~ 4,
TRUE ~ NA_real_))
【问题讨论】:
-
如果您在帖子中包含
dput(mydata)会更容易。
标签: r data-manipulation