数据帧列表:
my_list <- list(structure(list("_uuid" = c("xxxyz",
"xxxyz", "zzuio", "iiopz"), country = c("USA",
"USA", "Canada", "Switzerland")), class = "data.frame", row.names = c(NA, -4L)),
structure(list("_uuid" = c("xxxyz", "ppuip",
"zzuio"), country = c("USA", "Canada", "Canada")), class = "data.frame", row.names = c(NA,
-3L)))
my_list
[[1]]
_uuid country
1 xxxyz USA
2 xxxyz USA
3 zzuio Canada
4 iiopz Switzerland
[[2]]
_uuid country
1 xxxyz USA
2 ppuip Canada
3 zzuio Canada
我想删除该列表中存储的数据帧内部和之间的重复行.
This用于删除每个数据帧中的重复项:
my_list <- lapply(my_list, function(z) z[!duplicated(z[["_uuid"]]),])
my_list
[[1]]
_uuid country
1 xxxyz USA
3 zzuio Canada
4 iiopz Switzerland
[[2]]
_uuid country
1 xxxyz USA
2 ppuip Canada
3 zzuio Canada
但数据帧之间仍然存在重复.我想把它们全部删除,并得到以下所需的输出:
[[1]]
_uuid country
iiopz Switzerland
[[2]]
_uuid country
xxxyz USA
zzuio Canada
ppuip Canada
注:
- 我想消除
_uuid
上的重复项(其他变量可以重复) - 我需要一个解决方案,它是不需要合并数据帧判断重复
- 如果可能的话,我希望保留最后一点意见.例如,在上面的期望输出中,"zzuio Canada"在两个df中都存在,但只保留在最后的df中,即df 2中.
- 我有超过100个dfs,其中的变量名在dfs之间并不一定匹配.也就是说,id总是被称为"_uuid"
- 我需要将结果重新分配给同一个对象(在上面的例子中,
my_list
)