R中的合并命令

Posted

技术标签:

【中文标题】R中的合并命令【英文标题】:Merge Command in R 【发布时间】:2011-03-31 17:53:44 【问题描述】:

我一直在玩 R 中的合并命令,并试图弄清楚如何使用 SUFFIX 参数。在线文档并没有很好地解释它。

我想做的是导入一些 csv 文件:

data1<-read.csv("fileA", header=T)
data2<-read.csv("fileB", header=T)

然后使用merge命令将它们合并。但是,我希望一些变量真正合并,而其他具有相同名称的变量由它们来自的文件标记。例如,如果我的两个电子表格中都存在“NAME”变量,那么我希望它们正常合并,但如果出现“GRADE”变量,它将更改为 GRADE.fileA 和 GRADE .fileB。我已经能够获得 GRADE.x 和 GRADE.y,但我希望在这些变量上使用更多有用的标签。对此的任何帮助将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

我猜你没有在merge 中明确指定by arg。你想要这样的东西吗?

> NAME <- sample(letters,10)
> data1 <- data.frame(NAME,grade=sample(letters[1:4],10,TRUE))
> data2 <- data.frame(NAME,grade=sample(letters[1:4],10,TRUE))
> merged <- merge(data1,data2,by="NAME",suffixes=c(".fileA",".fileB"))
> merged
   NAME grade.fileA grade.fileB
1     d           a           c
2     e           d           d
3     f           b           a
4     j           c           c
5     l           b           a
6     o           a           c
7     p           d           d
8     q           d           a
9     t           a           b
10    x           d           c

【讨论】:

【参考方案2】:

我认为这应该可行:

merged.df <- merge(data1, data2, by='NAME', suffixes=c('.fileA', '.fileB'))

【讨论】:

以上是关于R中的合并命令的主要内容,如果未能解决你的问题,请参考以下文章

在R中的一行上顺序执行两个命令?

R:合并同一数据表中的行,连接某些列

基于R中的行名合并数据框

合并R中的多行

将数据与r中的部分匹配合并

R:合并同一data.frame中的行[重复]