我有多个共享公共列的数据框。
dfs <- list(DB07, DB08, DB09, DB10, DB11, DB12, DB13, DB14, DB15, DB16, DB17, DB18, DB19, DB20, DB21)
我想检查 2 个数据帧的任意组合是否具有共同的 id。 例如DB07$ID、DB08$ID 是否有共同的 ID? 因为我很确定是有的。 当我制作DB时,绑定dfs中的所有行, 长度(唯一(DB $ ID))和长度(DB $ ID)不匹配。
提前谢谢您。
您可以
unlist()
,然后找到 duplicated()
值。确保您的列表具有正确格式的名称,以给出数据框的名称,并用点与行号分隔。
ids <- unlist(lapply(dfs, \(x) x$ID))
ids[duplicated(ids)]
# DB2.1 DB2.2 DB3.2 DB4.4 DB5.7 DB5.8 DB6.4 DB7.1 DB7.4 DB7.5 DB7.6 DB7.7 DB7.8 DB7.9 DB8.2 DB8.4 DB8.7 DB8.9 DB8.10 DB9.8
# 7 55 51 70 43 7 78 46 55 98 68 12 51 16 82 3 85 52 25 24
# DB9.9 DB9.10 DB10.1 DB10.2 DB10.3 DB10.6 DB10.7 DB10.9 DB10.10
# 12 9 55 75 63 26 48 37 91
数据:
set.seed(100)
dfs <- lapply(1:10, \(i) data.frame(ID = sample(1:100, 10))) |>
setNames(sprintf("DB%s.", 1:10))