如果我有包含多个数据框的列表元素,并且我想通过名称NP1,NP2,NP3将它们作为单独的文本文件写在我的磁盘上,我该怎么做?
我使用了以下内容,
lapply(lst1,write.table)
但这并没有解决问题。我该怎么做? 谢谢!
答案 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))