我有一个重复数据删除的功能,以便每个人(由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))
但是,它只修改列表的元素,而不是替换未重复的数据帧。如何应用此功能来修改和替换多个数据帧?
答案 0 :(得分:1)
有用吗? 在创建列表时命名您的数据帧,以便之后可以恢复它们
list.df <- list(df1 = df1, df2 = df2, df3 = df3)
list2env(lapply(list.df, dedupit), .GlobalEnv)
因此,您的数据框df1,df2,df3将是重复数据删除版本。