在循环中保存数据帧列表

Posted

技术标签:

【中文标题】在循环中保存数据帧列表【英文标题】: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 函数进行迭代。

谢谢

【问题讨论】:

【参考方案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

以上是关于在循环中保存数据帧列表的主要内容,如果未能解决你的问题,请参考以下文章

将存储在列表中的数据帧保存到 R 中的单个文件中

如何在 R 中使用带有 ggpie 函数的循环并在数据帧之后保存文件名?

使用for循环将数据帧保存为.Rdata文件[重复]

迭代多个数据帧并执行数学函数保存输出

如何根据 R 中的原始文件名将包含多个数据帧的大列表保存为单个 csv

如何避免循环遍历 pandas 中的分类变量以查看/操作数据帧切片/子集