簡體   English   中英

R-如何對多個變量執行相同的操作

[英]R - How to perform the same operation on multiple variables

在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)
...

等等,這顯然不是很實用。

如何使該操作更具編程性?

您可以使用Map merge df_obsdf_model數據df_obs並到一個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)

您可以使用for循環

for(i in 1:5) {
  data <- paste("new_df_model", i, sep = "")
  model <- merge(df_obs, paste("df_model", i, sep = ""), all = TRUE)
  assign(data, model)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM