【问题标题】:Use a function to modify multiple dataframes使用函数修改多个数据框
【发布时间】: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))

不过,它只修改了列表的元素,并没有替换不重复的数据框。如何应用此功能修改和替换多个数据框?

【问题讨论】:

  • 这是处理多个数据帧的推荐方式。将它们保存在列表中比使用数据框填充全局环境更干净。

标签: r function dataframe


【解决方案1】:

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

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

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

因此,您的数据框 df1、df2、df3 将是去重版本。

unlist a list of dataframes

【讨论】:

    猜你喜欢
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多