【发布时间】:2014-06-18 09:16:49
【问题描述】:
我有一个删除重复数据框的功能,以便每个人(由 PatID 索引)由最新记录(最大 RecID)表示一次:
dedupit <- function(x) {
x <- x[order(x$PatID, -x$RecID),]
x <- x[ !duplicated(x$PatID), ]
return(x)
}
如果我这样做,它可以删除重复数据并替换数据框:
df <- dedupit(df)
但我有多个需要重复数据删除的数据帧。我不想为每个单独的数据帧编写上述代码,而是想一次跨多个数据帧应用去重函数,以便用重复的版本替换不重复的数据帧。
我能够制作一个数据框列表,并将函数应用于列表中的每个元素:
listofdifs <- list(df1, df2, ....)
listofdfs <- lapply(trial, function(x) dedupit(x))
不过,它只修改了列表的元素,并没有替换不重复的数据框。如何应用此功能修改和替换多个数据框?
【问题讨论】:
-
这是处理多个数据帧的推荐方式。将它们保存在列表中比使用数据框填充全局环境更干净。