如何根据 R 中的输入数据帧名称创建输出数据帧名称?

问题描述 投票:0回答:1

我试图对多个数据帧进行回归建模。

我的预期结果将根据输入数据框名称进行命名,所以我想知道如何实现这一点!

到目前为止我做了什么,

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
r dataframe for-loop automation lm
1个回答
0
投票

首先使用命名参数创建

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])
© www.soinside.com 2019 - 2024. All rights reserved.