如何将全局环境中的数据以相同的名称自动保存到PC上的文件夹中?
How to save data in global environment with same ending automatically with their names into a folder on PC?
我想自动保存在环境中具有相同名称的单个数据帧,而无需在代码中编写每个数据帧本身的名称。我该怎么做?
library(dplyr)
set.seed(94756)
Data_Date03.03.22Time10.23.45.xlsx <- matrix(sample(seq(-1,100, 0.11),70, replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.23.45.xlsx <- as.tibble(Data_Date03.03.22Time10.23.45.xlsx)
Data_Date03.03.22Time10.26.36.xlsx <- matrix(sample(seq(-1,100, 0.11),70, replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.26.36.xlsx <- as.tibble(Data_Date03.03.22Time10.26.36.xlsx)
Data_Date03.03.22Time10.26.36.xlsx[3,1] <- NA
Data_Date03.03.22Time10.26.36.xlsx[6,1] <- NA
Data_Date03.03.22Time10.27.12.xlsx <- matrix(sample(seq(-1,100, 0.11), 70,replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.27.12.xlsx <- as.tibble(Data_Date03.03.22Time10.27.12.xlsx)
Data_Date03.03.22Time10.27.12.xlsx[4,1] <- NA
data <- list(Data_Date03.03.22Time10.23.45.xlsx, Data_Date03.03.22Time10.26.36.xlsx, Data_Date03.03.22Time10.27.12.xlsx)
我电脑“保存文档”文件夹中的结果应该是:
Data_Date03.03.22Time10.23.45.xlsx |
Data_Date03.03.22Time10.26.36.xlsx |
Data_Date03.03.22Time10.27.12.xlsx |
...作为三个单独的 excel 文档。
提前致谢!
这会在您的工作目录中写入 excel 个文件。
purrr::imap(mget(ls(pattern = '^Data_Date')), writexl::write_xlsx)
如果你想把它写到特定的文件夹,你可以这样做-
purrr::imap(mget(ls(pattern = '^Data_Date')),
~writexl::write_xlsx(.x, paste0('/path/to/folder/', .y)))
解释-
ls
和 pattern
returns 全局环境中 object 的名称,其名称中包含模式。
ls(pattern = '^Data_Date')
#[1] "Data_Date03.03.22Time10.23.45.xlsx" "Data_Date03.03.22Time10.26.36.xlsx"
#[3] "Data_Date03.03.22Time10.27.12.xlsx"
mget
将创建一个命名的 tibble 列表。 imap
用于将小标题写入 excel 文件,其中 .x
是小标题,而 .y
是 object.
的名称
我想自动保存在环境中具有相同名称的单个数据帧,而无需在代码中编写每个数据帧本身的名称。我该怎么做?
library(dplyr)
set.seed(94756)
Data_Date03.03.22Time10.23.45.xlsx <- matrix(sample(seq(-1,100, 0.11),70, replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.23.45.xlsx <- as.tibble(Data_Date03.03.22Time10.23.45.xlsx)
Data_Date03.03.22Time10.26.36.xlsx <- matrix(sample(seq(-1,100, 0.11),70, replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.26.36.xlsx <- as.tibble(Data_Date03.03.22Time10.26.36.xlsx)
Data_Date03.03.22Time10.26.36.xlsx[3,1] <- NA
Data_Date03.03.22Time10.26.36.xlsx[6,1] <- NA
Data_Date03.03.22Time10.27.12.xlsx <- matrix(sample(seq(-1,100, 0.11), 70,replace = TRUE),ncol = 5)
Data_Date03.03.22Time10.27.12.xlsx <- as.tibble(Data_Date03.03.22Time10.27.12.xlsx)
Data_Date03.03.22Time10.27.12.xlsx[4,1] <- NA
data <- list(Data_Date03.03.22Time10.23.45.xlsx, Data_Date03.03.22Time10.26.36.xlsx, Data_Date03.03.22Time10.27.12.xlsx)
我电脑“保存文档”文件夹中的结果应该是: Data_Date03.03.22Time10.23.45.xlsx | Data_Date03.03.22Time10.26.36.xlsx | Data_Date03.03.22Time10.27.12.xlsx | ...作为三个单独的 excel 文档。
提前致谢!
这会在您的工作目录中写入 excel 个文件。
purrr::imap(mget(ls(pattern = '^Data_Date')), writexl::write_xlsx)
如果你想把它写到特定的文件夹,你可以这样做-
purrr::imap(mget(ls(pattern = '^Data_Date')),
~writexl::write_xlsx(.x, paste0('/path/to/folder/', .y)))
解释-
ls
和 pattern
returns 全局环境中 object 的名称,其名称中包含模式。
ls(pattern = '^Data_Date')
#[1] "Data_Date03.03.22Time10.23.45.xlsx" "Data_Date03.03.22Time10.26.36.xlsx"
#[3] "Data_Date03.03.22Time10.27.12.xlsx"
mget
将创建一个命名的 tibble 列表。 imap
用于将小标题写入 excel 文件,其中 .x
是小标题,而 .y
是 object.