【发布时间】:2016-06-22 23:05:46
【问题描述】:
我有几个变量如下:
cats <- "some long text with info"
dogs <- "some long text with info"
fish <- "some long text with info"
....
我手动将这些变量的内容写入一个文本文件:
write.table(cats, "info/cats.txt", sep="\t")
write.table(dogs, "info/dogs.txt", sep="\t")
....
我阅读了this question 的答案并尝试编写一个循环来自动写入文件。
所以我创建了一个列表:
lst <<- list(cats, dogs,fish, ....)
然后遍历列表:
for(i in seq_along(lst)) {
write.table(lst[[i]], paste(names(lst)[i], ".txt", sep = ""),
col.names = FALSE, row.names = FALSE, sep = "\t")
}
但上述迭代的输出是一个名为.txt 的文本文件,它包含列表中最后一个变量的内容。
知道为什么上述循环没有按预期工作吗?
【问题讨论】:
-
is.null(names(lst)); #[1] TRUE -
@nrussell 返回
TRUE -
是的——你没有列出你的名单。等效地,
paste0(NULL, ".txt")
标签: r loops for-loop write.table