我试图对多个数据帧进行回归建模。
我的预期结果将根据输入数据框名称进行命名,所以我想知道如何实现这一点!
到目前为止我做了什么,
list.dfs <- list(BrC15sy_h16_d_EE86228,BrC15sy_h16_d_EE86235,BrC15sy_h16_d_EE86256,
BrC15sy_h16_d_EE86257,BrC15sy_h16_d_EE86267,BrC15sy_h16_d_EE86269)
for (i in 1:length(list.dfs)){
lm.res <- lm(
as.formula(paste(colnames(list.dfs[[i]])[1], "~ .")),
data=list.dfs[[i]]
)
assign(paste0("lm_Res",i), lm.res, envir = .GlobalEnv)
}
这将输出数据帧传递为,
lm_Res1
lm_Res2
lm_Res3
lm_Res4
lm_Res5
lm_Res6
我的预期输出数据框名称应该是,
lm_Res_BrC15sy_h16_d_EE86228
lm_Res_BrC15sy_h16_d_EE86235
lm_Res_BrC15sy_h16_d_EE86256
lm_Res_BrC15sy_h16_d_EE86257
lm_Res_BrC15sy_h16_d_EE86267
lm_Res_BrC15sy_h16_d_EE86269
首先使用命名参数创建
list.dfs
,因此,使用
list.dfs <- list(BrC15sy_h16_d_EE86228 = BrC15sy_h16_d_EE86228, ...)
或更方便,使用
lst()
库中的 tibble
函数:
list.dfs <- tibble::lst(BrC15sy_h16_d_EE86228, ...)
最后,将
paste0("lm_Res",i)
调用中的 assign
替换为
paste0("lm_Res_", names(list.dfs)[i])