我想要合并3个数据集。 第一个是编码数据集:
ID Gender Race
1 0 1
2 1 3
3 1 2
第二和第三个数据集是带有描述的代码表
Code Gender
0 Female
1 Male
和
Code Race
1 White
2 Black
3 Asian
我想看看是否有更好的方法,而不仅仅是做大量的合并语句,因为我有比这些更多的变量,我需要与他们的描述合并。我认为可能的for循环或l / sapply对这项任务有好处。
我想让它看起来像:
ID Gender Race
1 Female White
2 Male Asian
3 Male Black
非常感谢你的帮助!
答案 0 :(得分:2)
dplyr
解决方案可能
main = read.csv(textConnection("ID, Gender, Race
1, 0, 1
2, 1, 3
3, 1, 2"))
gen = read.csv(textConnection("Code, Gender
0, Female
1, Male"), stringsAsFactors = FALSE)
race = read.csv(textConnection("Code, Race
1, White
2, Black
3, Asian"), stringsAsFactors = FALSE)
colnames(race) = c("Race", "RaceStr")
colnames(gen) = c("Gender", "GenderStr")
library(dplyr) # install.packages("dplyr")
main %>%
inner_join(gen) %>%
inner_join(race) %>%
select(ID, GenderStr, RaceStr)
我采取的方法是将代码描述表的列名映射到您试图使其更具可读性的变量,然后通过映射加入。
如果您没有,可能还需要plyr
套餐。