为什么write.csv不能直接使用lapply

时间:2018-02-16 10:01:59

标签: r export-to-csv lapply

这个问题不是关于如何使它工作,如果你正在寻找,这里有一些很好的答案。 Thread1Thread2

我的问题是为什么这个版本不起作用

#Creating a simple list
n <- 5
my_list <- lapply(1:n, function(i)  data.frame(x = rnorm(10), y = rnorm(10)) )
names(my_list) <- letters[1:n]

#Trying to write as per my intuition, produces error
lapply(my_list,write.csv,paste0(names(my_list),".csv"))

Error in file(file, ifelse(append, "a", "w")) : 
  invalid 'description' argument
In addition: Warning message:
In if (file == "") file <- stdout() else if (is.character(file)) { :
  the condition has length > 1 and only the first element will be used

然而,使用

可以轻松实现所需的结果
lapply(1:length(my_list), function(i) write.csv(my_list[[i]], 
                                      file = paste0(names(my_list[i]), ".csv")))

由于我不明白这个错误,我有很多疑惑。

  • 为什么我们需要编写另一个适用于个人的功能 列表元素?
  • 是否还有其他类似的功能 直接与lapply一起使用并需要类似的处理?而且(甚至更好),我如何认识到功能是否需要这种治疗?
  • 此类功能对这些功能的潜在好处是什么? 可以直接与lapply
  • 一起使用

0 个答案:

没有答案