[英]How to extract information and perform the same operation on multiple similar files in 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_obs
和df_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.