在 R 中保存列表元素 - 文件数与列表长度不匹配
Saving Elements of List in R - Number of Files doesnt match length of list
我有两个仅包含数据帧的列表。
我的目标是将它们的元素单独保存为 csv。
但是,无论我尝试哪种方法,最后输出文件夹中包含的 csv 文件数量都与列表中的元素数量不同。
例如。
列表长度 = 150
输出文件夹中的 CSV 数量 = 122
我的考验:
- lapply
lapply(names(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', x, '.csv'))
})
- 像循环一样的石器时代
for (i in 1: length(price_list_raw)){
nam <- names(price_list_raw[i])
output_folder <- paste0("C:/Users/XXX",'/',nam,".csv")
write_csv(price_list_raw[[i]],
output_folder
)
print(i)
}
我错过了什么?
当我查看列表及其元素时,它们都是数据框
有什么建议吗?
亲切的问候
与其遍历可能重复的 names
,不如遍历元素序列
lapply(seq_along(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', names(price_list_raw)[x], x, '.csv'))
})
此外,如评论中所述,如果有重复的名称,则一种选择是通过使其唯一来循环名称
names(price_list_raw) <- make.unique(names(price_list_raw))
lapply(names(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', x, '.csv'))
})
write_csv
中的用法是
write_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote_escape = "double",
eol = "\n",
path = deprecated()
)
我有两个仅包含数据帧的列表。 我的目标是将它们的元素单独保存为 csv。 但是,无论我尝试哪种方法,最后输出文件夹中包含的 csv 文件数量都与列表中的元素数量不同。
例如。 列表长度 = 150 输出文件夹中的 CSV 数量 = 122
我的考验:
- lapply
lapply(names(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', x, '.csv'))
})
- 像循环一样的石器时代
for (i in 1: length(price_list_raw)){
nam <- names(price_list_raw[i])
output_folder <- paste0("C:/Users/XXX",'/',nam,".csv")
write_csv(price_list_raw[[i]],
output_folder
)
print(i)
}
我错过了什么? 当我查看列表及其元素时,它们都是数据框
有什么建议吗?
亲切的问候
与其遍历可能重复的 names
,不如遍历元素序列
lapply(seq_along(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', names(price_list_raw)[x], x, '.csv'))
})
此外,如评论中所述,如果有重复的名称,则一种选择是通过使其唯一来循环名称
names(price_list_raw) <- make.unique(names(price_list_raw))
lapply(names(price_list_raw), function(x) {
x1 <- price_list_raw[[x]]
write_csv(x1, file=paste0("C:/Users/XXX",'/', x, '.csv'))
})
write_csv
中的用法是
write_csv(
x,
file,
na = "NA",
append = FALSE,
col_names = !append,
quote_escape = "double",
eol = "\n",
path = deprecated()
)