在 R 中保存列表元素 - 文件数与列表长度不匹配

Saving Elements of List in R - Number of Files doesnt match length of list

我有两个仅包含数据帧的列表。 我的目标是将它们的元素单独保存为 csv。 但是,无论我尝试哪种方法,最后输出文件夹中包含的 csv 文件数量都与列表中的元素数量不同。

例如。 列表长度 = 150 输出文件夹中的 CSV 数量 = 122

我的考验:

  1. lapply
    lapply(names(price_list_raw), function(x) {
      x1 <- price_list_raw[[x]]
      write_csv(x1, file=paste0("C:/Users/XXX",'/', x, '.csv'))
    })
  1. 像循环一样的石器时代
    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()
)