【发布时间】:2016-03-20 11:40:38
【问题描述】:
这个问题是this one 的后续问题,得到了否定的答复,没有答案。所以,我正在尝试使用 R 来做到这一点。
我有很多(超过 30 个)这样的文件:
-
文件1
5 A1 23 A3 1 B2 289 BX5 90 D3 -
文件2
2 A1 10 A2 3 B1 1 BX4 90 D3 24 E0 -
文件3
4 A0 11 A2 1 B1 2 D3
我想将所有这些组合起来生成一个这样的数据框:
A0 0 0 4
A1 5 2 0
A2 0 10 11
A3 23 0 0
B1 0 3 1
B2 1 0 0
BX4 0 1 0
BX5 289 0 0
D3 90 90 2
E0 0 24 0
基于this,我尝试使用 read.table 读取两个文件,同时将第二列指定为行名,然后按行名合并数据框,如下所示:
> df1 <- read.table("File1", row.names = 2)
> df1
V1
A1 5
A3 23
B2 1
BX5 289
D3 90
> df2 <- read.table("File2", row.names = 2)
> df2
V1
A1 2
A2 10
B1 3
BX4 1
D3 90
E0 24
> m1 <- merge(df1, df2, by=0, all=TRUE)
> m1[is.na(m1)] <- 0
> m1
Row.names V1.x V1.y
1 A1 5 2
2 A2 0 10
3 A3 23 0
4 B1 0 3
5 B2 1 0
6 BX4 0 1
7 BX5 289 0
8 D3 90 90
9 E0 0 24
到目前为止一切顺利,但是当我尝试将生成的数据框合并到第三个数据框时,它并没有像我希望的那样工作。正因为如此,我不确定如何继续将所有 30 多岁的文件合并到一个数据框中。以前我以为我会修改here 描述的multmerge 函数,但现在我卡住了。
那么,有人可以帮我解决这个问题吗?提前致谢。
编辑:如果有人能为这个问题建议一个更好的标题,我也会非常感激。
【问题讨论】:
-
由于这个问题被标记为重复(“之前已经被问过并且已经有答案”),标记它的人可以向我指出它被问到的地方吗?我在 Stackoverflow 中找不到它;还是我搜索不够努力? This question 对我来说和我的不同,我在那里看不到我的问题的任何答案。
标签: r merge read.table