合并多个代码描述表

时间:2015-05-21 14:48:09

标签: r

我想要合并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

非常感谢你的帮助!

1 个答案:

答案 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套餐。