【发布时间】:2018-06-20 16:47:13
【问题描述】:
我需要合并两个结构如下的csv:
csv1 =
1.1, 1, 2, 3, 4, 5, 6
1.2, 1, 2, 3, 4, 5, 6
1.3, 1, 2, 3, 4, 5, 6
csv2 =
1.1, a, b, c, d, e, f
1.2, a, b, c, d, e, f
1.3, a, b, c, d, e, f
两个 csv 的第一列都是“ID”(1.1、1.2、1.3)。
所以我需要的是第三个具有相同行号的 csv 结构,使用 ID 列作为合并点:
csv 合并 =
1.1, 1, 2, 3, 4, 5, 6, a, b, c, d, e, f
1.2, 1, 2, 3, 4, 5, 6, a, b, c, d, e, f
1.3, 1, 2, 3, 4, 5, 6, a, b, c, d, e, f
我尝试使用函数合并,但没有得到预期的结果。
我使用了以下代码:
> dt1 <- read.csv(test, header = FALSE)<br>
> dt1<br>
V1 V2 V3 V4 V5 V6 V7<br>
1 1.1 1 2 3 4 5 6<br>
2 1.2 1 2 3 4 5 6<br>
3 1.3 1 2 3 4 5 6<br>
> dt2 <- read.csv(test2, header = FALSE)<br>
> dt2<br>
V1 V2 V3 V4 V5 V6 V7<br>
1 1.1 a b c d e f <br>
2 1.2 a b c d e f <br>
3 1.3 a b c d e f <br>
> merge(dt1, dt2)<br>
[1] V1 V2 V3 V4 V5 V6 V7<br>
<0 rows> (or 0-length row.names)<br><br>
感谢关注。
【问题讨论】:
-
当
by=未指定时,合并将使用所有列进行合并,因此不匹配。试试merge(dt1, dt2, by = "V1"),它应该可以工作。