【问题标题】:save list of data frames in a loop在循环中保存数据帧列表
【发布时间】:2022-01-20 04:40:53
【问题描述】:

我有一个需要循环并保存输出的数据集列表。分配的名称属于字符向量。例如:

list_data <- mtcars %>% group_split(cyl)

names_vector <- c("low", "medium", "high")

# this is what I am doing

low <- list_data[[1]]

medium <- list_data[[2]]

high <- list_data[[3]]

分配的名称属于字符向量,需要按顺序排列。列表中的数据集数量与names_vector 的长度匹配。但这需要使用循环或一些 purr/dplyr 函数进行迭代。

谢谢

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    这是许多问题的重复。您可以使用 assign 或使用 Zealot 软件包中的 %&lt;-%

    library(zeallot)
    c(low, medium, high) %<-% list_data
    # Alternative:
    names(list_data) <- c("low", "medium", "high")
    mapply(list_data, names(list_data), FUN = \(x, name)assign(name, x, envir = globalenv()))
    

    【讨论】:

      【解决方案2】:

      无需循环,您可以重命名列表中的数据框,

      names(list_data) <- names_vector
      

      然后将每个数据帧分离到环境中,

      list2env(list_data,envir=.GlobalEnv)
      

      【讨论】:

      • names(list_data) &lt;- names_vector
      猜你喜欢
      • 2021-01-03
      • 2020-04-08
      • 2021-02-06
      • 2019-10-09
      • 2019-09-21
      • 1970-01-01
      • 2021-10-31
      • 2022-06-29
      • 1970-01-01
      相关资源
      最近更新 更多