首页 > 解决方案 > 在 R 中创建一个可以遍历不同数据帧的函数/宏

问题描述

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

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

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

function(df_list)

标签: rdataframefunction

解决方案


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)

推荐阅读