【问题标题】:Create a function/macro in R which can loop over different data frames在 R 中创建一个可以遍历不同数据帧的函数/宏
【发布时间】:2021-11-19 14:21:51
【问题描述】:

我创建了十个不同的数据框(例如 df1、df2、...、df10)。我想在所有这些数据帧上使用 R 中的函数spread。我的解决方案是在 R 中创建一个函数,该函数可以在所有数据帧上重复函数 spread,并创建十个具有更新名称的新数据帧:df1_widedf2_wide、...、df10_wide。 我最初的想法是这样的:

new_function <- function(df) {
"df"_wide <- spread(df, key=time, value=values)
}

df_list <- list(df1,df2,...,df10)

function(df_list)

【问题讨论】:

    标签: r dataframe function


    【解决方案1】:

    spread 已停用,因此您可以切换到 pivot_wider。使用lapply 将自定义函数应用于列表中的每个数据框。

    new_function <- function(df) {
      tidyr::pivot_wider(df, names_from =time, values_from =values)
    }
    
    df_list <- list(df1,df2,...,df10)
    #Or
    #df_list <- mget(paste0('df', 1:10))
    
    df_result <- lapply(df_list, new_function)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2020-07-15
      • 2021-10-17
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多