使用函数修改多个数据帧

时间:2014-05-01 19:48:40

标签: r function dataframe

我有一个重复数据删除的功能,以便每个人(由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))

但是,它只修改列表的元素,而不是替换未重复的数据帧。如何应用此功能来修改和替换多个数据帧?

1 个答案:

答案 0 :(得分:1)

有用吗? 在创建列表时命名您的数据帧,以便之后可以恢复它们

list.df <- list(df1 = df1, df2 = df2, df3 = df3)

list2env(lapply(list.df, dedupit), .GlobalEnv)

因此,您的数据框df1,df2,df3将是重复数据删除版本。

unlist a list of dataframes