R 组合多个代码描述表

R 组合多个代码描述表,r,R,我有3个数据集要合并。 第一个是编码数据集: ID Gender Race 1 0 1 2 1 3 3 1 2 第二和第三个数据集是带有说明的代码表 Code Gender 0 Female 1 Male 及 我想看看是否有比只做大量合并语句更好的方法,因为我有比这2个更多的变量需要与它们的描述合并。我在想,可能的for loop或l/sapply将适合此任务 我想让它看起来像: ID Gender Race 1

我有3个数据集要合并。 第一个是编码数据集:

ID   Gender Race
1    0      1
2    1      3
3    1      2
第二和第三个数据集是带有说明的代码表

Code  Gender
0     Female
1     Male

我想看看是否有比只做大量合并语句更好的方法,因为我有比这2个更多的变量需要与它们的描述合并。我在想,可能的for loop或l/sapply将适合此任务

我想让它看起来像:

ID   Gender   Race
1    Female   White   
2    Male     Asian 
3    Male     Black

非常感谢你的帮助

一点
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)
我采用的方法是将代码描述表的列名映射到您试图使其更可读的变量,然后通过映射进行连接


如果没有,您可能还需要thr
plyr
包。

一点
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)
我采用的方法是将代码描述表的列名映射到您试图使其更可读的变量,然后通过映射进行连接


如果没有,您可能还需要thr
plyr
包。

一点
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)
我采用的方法是将代码描述表的列名映射到您试图使其更可读的变量,然后通过映射进行连接


如果没有,您可能还需要thr
plyr
包。

一点
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)
我采用的方法是将代码描述表的列名映射到您试图使其更可读的变量,然后通过映射进行连接




如果没有,您可能还需要thr
plyr
软件包。

是否要用文本字符串替换数字代码?我认为这里的因素更合适。是的,这正是我想要的。如果有帮助的话,我可以把所有的东西都当作因素来读。你可以使用类似的方法,就像我现在要看的那样。谢谢@大卫:为什么不使用simple
ifelse
函数呢?你想用文本字符串替换数字代码吗?我认为这里的因素更合适。是的,这正是我想要的。如果有帮助的话,我可以把所有的东西都当作因素来读。你可以使用类似的方法,就像我现在要看的那样。谢谢@大卫:为什么不使用simple
ifelse
函数呢?你想用文本字符串替换数字代码吗?我认为这里的因素更合适。是的,这正是我想要的。如果有帮助的话,我可以把所有的东西都当作因素来读。你可以使用类似的方法,就像我现在要看的那样。谢谢@大卫:为什么不使用simple
ifelse
函数呢?你想用文本字符串替换数字代码吗?我认为这里的因素更合适。是的,这正是我想要的。如果有帮助的话,我可以把所有的东西都当作因素来读。你可以使用类似的方法,就像我现在要看的那样。谢谢@大卫:为什么不使用simple
ifelse
函数呢?感谢您的帮助,dplyr软件包似乎无法安装。将软件包安装到“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1”中(因为“lib”未指定)尝试URL”“内容类型”“应用程序/x-gzip”长度891010字节(870 Kb)打开的URL=======================================================下载870 Kb*安装源程序包“dplyr”…**包“dplyr”已成功解包并检查了MD5总和**libs错误:找到包“Rcpp”0.11.2,但“dplyr”*删除“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1/dplyr”需要>=0.11.3”更新包
Rcpp
另一个用于读取OP中的普通表的常用选项是
read.table(header=TRUE,text=“paste_OP_text”)
这样,您就不必添加逗号。我得到以下两个错误:1)
警告消息:在内部连接中(x,y,by$x,by$y):使用不同级别的连接因子,强制使用字符向量
和tbl_变量中的
错误(y):参数“y”丢失,没有默认值
感谢您的帮助,但似乎无法安装dplyr包。正在将包安装到“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1”(由于未指定“lib”),正在尝试URL”“内容类型”“应用程序/x-gzip”“长度891010字节(870 Kb)打开的URL=======================================================下载870 Kb*安装源程序包“dplyr”…**包“dplyr”已成功解包并检查了MD5总和**libs错误:找到包“Rcpp”0.11.2,但“dplyr”*删除“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1/dplyr”需要>=0.11.3”更新包
Rcpp
另一个用于读取OP中的普通表的常用选项是
read.table(header=TRUE,text=“paste_OP_text”)
这样,您就不必添加逗号。我得到以下两个错误:1)
警告消息:在内部连接中(x,y,by$x,by$y):使用不同级别的连接因子,强制使用字符向量
和tbl_变量中的
错误(y):参数“y”丢失,没有默认值
感谢您的帮助,但似乎无法安装dplyr包。正在将包安装到“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1”(由于未指定“lib”),正在尝试URL”“内容类型”“应用程序/x-gzip”“长度891010字节(870 Kb)打开的URL=======================================================下载870 Kb*安装源程序包“dplyr”…**包“dplyr”已成功解包并检查了MD5总和**libs错误:找到包“Rcpp”0.11.2,但“dplyr”*删除“/home/cyee/R/x86_64-pc-linux-gnu-library/3.1/dplyr”需要>=0.11.3”更新包
Rcpp
另一个用于读取OP中的普通表的常用选项是
read.table(header=TRUE,text=“paste\u OP\u text”)
这样,您就不必添加逗号了