如何从R列表中创建自动文本文件?

时间:2014-09-26 20:54:27

标签: r

如果我有包含多个数据框的列表元素,并且我想通过名称NP1,NP2,NP3将它们作为单独的文本文件写在我的磁盘上,我该怎么做?

我使用了以下内容,

lapply(lst1,write.table)

但这并没有解决问题。我该怎么做? 谢谢!

1 个答案:

答案 0 :(得分:2)

这有两种方法。一个有for循环,一个有mapply

设置数据框列表:

lst1 <- list(data.frame(x = 1:5, y = letters[1:5]),
             data.frame(z = 6:10, w = LETTERS[1:5]))

使用for循环遍历列表:

for(i in seq_along(lst1)) {
    write.table(lst1[[i]], paste0("NP", i, ".txt"))
}

检查结果:

read.table("NP1.txt")
read.table("NP2.txt")

使用mapply

nm <- paste0("NP", seq_along(lst1), ".txt")  ## create the file names
mapply(write.table, lst1, file = nm)         ## write the files
# [[1]]
# NULL
#
# [[2]]
# NULL

请注意,如果您不希望将NULL值作为打印结果,则可以将调用包裹在invisible

invisible(mapply(write.table, lst1, file = nm))