将列表列表作为 CSV 导出到单独的文件或 Excel 工作表中
Export List of Lists as CSV into seperate Files or Excel Sheets
我有一个包含 data.table
个对象的列表 mylists
x <- rep("example",5)
y <- 1:5
list1 <- list('a'= data.table(x,y),'b' = data.table(x,y))
list2 <- list('c'= data.table(x,y), 'd' = data.table(x,y))
mylists <- list('Output1'= list1,'Output2' =list2)
mylists
我想将每个列表中的每个对象导出为一个 单独的 CSV 文件(最好使用 data.table
中的 fwrite
)命名为对象,即 Output1_a.csv
我不能 rbind
一个数据。frame/table因为数据需要分开保存。
我试过使用
lapply(mylists,fwrite)
但无法生成具有不同名称的单独文件。
此外 我如何生成一个 xlsx File
,其中 mylists
的所有对象都存储在如上所述命名的单独工作表中。
我想知道这两种方式,因为这可能对未来有用。
对于 xlsx 版本,您可以这样做
x <- rep("example",5)
y <- 1:5
list1 <- list('a'= data.table(x,y),'b' = data.table(x,y))
list2 <- list('c'= data.table(x,y), 'd' = data.table(x,y))
mylists <- list('Output1'= list1,'Output2' =list2)
purrr::walk(names(mylists),
function(x){
writexl::write_xlsx(mylists[[x]],
path = paste0(x, ".xlsx"))
})
这将生成带有外部列表名称的 xlsx 文件和带有内部列表名称的工作表
对于 csv,我会做这样的事情来首先展平列表
mylists_flat <- unlist(mylists, recursive = FALSE)
walk(names(mylists_flat),
function(x){
write.csv(mylists_flat[[x]],
file = paste0(x, ".csv"))
})
这应该会生成名为 <outerlist_name>.<innerlist_name>.csv
的 csv 文件
我有一个包含 data.table
个对象的列表 mylists
x <- rep("example",5)
y <- 1:5
list1 <- list('a'= data.table(x,y),'b' = data.table(x,y))
list2 <- list('c'= data.table(x,y), 'd' = data.table(x,y))
mylists <- list('Output1'= list1,'Output2' =list2)
mylists
我想将每个列表中的每个对象导出为一个 单独的 CSV 文件(最好使用 data.table
中的 fwrite
)命名为对象,即 Output1_a.csv
我不能 rbind
一个数据。frame/table因为数据需要分开保存。
我试过使用
lapply(mylists,fwrite)
但无法生成具有不同名称的单独文件。
此外 我如何生成一个 xlsx File
,其中 mylists
的所有对象都存储在如上所述命名的单独工作表中。
我想知道这两种方式,因为这可能对未来有用。
对于 xlsx 版本,您可以这样做
x <- rep("example",5)
y <- 1:5
list1 <- list('a'= data.table(x,y),'b' = data.table(x,y))
list2 <- list('c'= data.table(x,y), 'd' = data.table(x,y))
mylists <- list('Output1'= list1,'Output2' =list2)
purrr::walk(names(mylists),
function(x){
writexl::write_xlsx(mylists[[x]],
path = paste0(x, ".xlsx"))
})
这将生成带有外部列表名称的 xlsx 文件和带有内部列表名称的工作表
对于 csv,我会做这样的事情来首先展平列表
mylists_flat <- unlist(mylists, recursive = FALSE)
walk(names(mylists_flat),
function(x){
write.csv(mylists_flat[[x]],
file = paste0(x, ".csv"))
})
这应该会生成名为 <outerlist_name>.<innerlist_name>.csv