【问题标题】:Combining multiple code description tables组合多个代码描述表
【发布时间】:2015-05-21 14:48:08
【问题描述】:

我有 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

非常感谢您的帮助!

【问题讨论】:

  • 您想用文本字符串替换数字代码吗?我认为因素在这里会更合适。
  • 是的,这正是我想要的。如果有帮助,我可以将所有内容都视为因素。
  • 您可以使用类似的方法,例如here
  • 我现在来看看。谢谢!
  • @David:为什么不使用简单的ifelse 函数?

标签: r


【解决方案1】:

一点点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 包,您可能还需要它。

【讨论】:

  • 感谢您的帮助,dplyr 软件包似乎无法安装。
  • 将包安装到 '/home/cyee/R/x86_64-pc-linux-gnu-library/3.1' (因为 'lib' 未指定)尝试 URL 'cran.rstudio.com/src/contrib/dplyr_0.4.1.tar.gz' 内容类型 'application /x-gzip' 长度 891010 字节 (870 Kb) 打开 URL ==================================== ============== 已下载 870 Kb * 安装 source 包 'dplyr' ... ** 包 'dplyr' 成功解包并检查了 MD5 和 ** libs 错误:找到包'Rcpp' 0.11.2,但'dplyr'需要> = 0.11.3 *删除'/home/cyee/R/x86_64-pc-linux-gnu-library/3.1/dplyr'
  • 更新包Rcpp
  • 另一个在 OP 中读取普通表格的常用选项是 read.table(header=TRUE,text="paste_OP_text") 这样,您不必添加逗号。
  • 我得到这 2 个错误:1) Warning message: In inner_join_impl(x, y, by$x, by$y) : joining factors with different levels, coercing to character vectorError in tbl_vars(y) : argument "y" is missing, with no default
猜你喜欢
  • 2014-04-12
  • 2021-06-12
  • 2021-01-16
  • 1970-01-01
  • 2015-12-30
  • 2020-06-18
  • 2011-03-14
  • 2013-06-06
  • 1970-01-01
相关资源
最近更新 更多