让我说我有两个数据框,它们仅在某些列上匹配,并且在每行的不同列上匹配。
例如,
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
的第一行与列y
和z
匹配,第二行与x
和y
匹配,第三行-匹配都不是。
合并会产生以下结果:
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")
所需的输出是一个数据帧,该数据帧的每一列和每一行都包含true
或false
,对应于它们是否重复。
作为合并命令或其他一些智能方法的一部分,是否有一种容易输出数据帧匹配的列的方法,而无需随后处理结果(我必须对两个对象执行此操作巨大的数据帧,每个数据帧包含大约一百万行)?该信息似乎应该已经存在于某处