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

6rqinv9w  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(89)

我试着在多个 Dataframe 上做回归建模。
我的预期结果将根据输入 Dataframe 名称命名,所以我想知道我如何才能实现这一点!
直到现在我所做的

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)
}

字符串
这将输出 Dataframe 传递为,

lm_Res1
lm_Res2
lm_Res3
lm_Res4
lm_Res5
lm_Res6


我期望的输出 Dataframe 名称应该是,

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

ifsvaxew

ifsvaxew1#

首先使用命名参数创建list.dfs,因此使用

list.dfs <- list(BrC15sy_h16_d_EE86228 = BrC15sy_h16_d_EE86228, ...)

字符串
或者更方便的是,使用tibble库中的lst()函数:

list.dfs <- tibble::lst(BrC15sy_h16_d_EE86228, ...)


最后,将assign调用中的paste0("lm_Res",i)替换为

paste0("lm_Res_", names(list.dfs)[i])

相关问题