R - 如何对多个变量执行相同的操作

标签 r variables operation

在 R 中,我经常需要对一组变量执行相同的操作。

例如,在我的环境中,我当前有以下数据框:

df_model1
df_model2
df_model3
df_model4
df_model5

我还有另一个名为df_obs的数据框。

我需要做的是将每个 df-model* 数据框合并到 df_obs

我通常做的是这样的:

new_df_model1 <- merge(df_obs, df_model1, all=TRUE)
new_df_model2 <- merge(df_obs, df_model2, all=TRUE)
...

等等,这显然不太实用。

如何使此操作更加程序化?

最佳答案

您可以使用Mapmerge df_obsdf_model list 中的数据集.

 lst <- Map(`merge`, list(df_obs), 
          mget(paste0('df_model', 1:5)), MoreArgs=list(all=TRUE))

如果列表中的输出数据集需要是全局环境中单独的data.frame对象,我们可以使用list2env (但我更愿意将其保留在列表中,因为大多数操作都可以在列表中完成)

 names(lst) <- paste('new',paste0('df_model', 1:5), sep="_")
 list2env(lst, envir= .GlobalEnv)

或者使用lapply

 lapply(mget(paste0('df_model', 1:5)), merge, x = df_obs, all=TRUE)

关于R - 如何对多个变量执行相同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274459/

相关文章:

php - 将查询变量发送到 php 函数的输入

python - 如何让 gobject.idle_add() 通过引用传递参数?

android - ListView中的隐藏字段传递一个变量

c - 位运算的实现

python - Unicode - 字符串 - 列表操作

r - 如何一起使用 formatPercentage 和 renderDataTable

r - R中数据表的奇怪情况,列名混合

r - 带有 magrittr tee 运算符的多个 ggplots

c - 为什么对 k 的操作可能未定义?

R Shiny 和 Spark : how to free Spark resources?