部分数据帧匹配-输出列索引

时间:2019-05-08 05:17:41

标签: r dataframe merge

让我说我有两个数据框,它们仅在某些列上匹配,并且在每行的不同列上匹配。

例如,

l1 = structure(list(x_l = c(8, 8.1), y_l = c(7, 7.2), z_l = c(6.7, 
6.4), TT = 1:2), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-2L))

r1 = structure(list(x_r = c(8.2, 8.1, 8.3), y_r = c(7, 7.2, 7.6), 
z_r = c(6.7, 6.5, 6.2), TT = c(1, 2, 3)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))

因此l1的第一行与列yz匹配,第二行与xy匹配,第三行-匹配都不是。

合并会产生以下结果:

M = merge(l1, r1, all = T)

M = structure(list(TT = c(1, 2, 3), x_l = c(8, 8.1, NA), y_l = c(7, 
7.2, NA), z_l = c(6.7, 6.4, NA), x_r = c(8.2, 8.1, 8.3), y_r = c(7, 
7.2, 7.6), z_r = c(6.7, 6.5, 6.2)), row.names = c(NA, -3L), class = 
"data.frame")

所需的输出是一个数据帧,该数据帧的每一列和每一行都包含truefalse,对应于它们是否重复。

作为合并命令或其他一些智能方法的一部分,是否有一种容易输出数据帧匹配的列的方法,而无需随后处理结果(我必须对两个对象执行此操作巨大的数据帧,每个数据帧包含大约一百万行)?该信息似乎应该已经存在于某处

0 个答案:

没有答案