List R:将列表打印到文本文件

List R:将列表打印到文本文件,list,r,List,R,我在R中有这样一个列表: > print(head(mylist,2)) [[1]] [1] 234984 10354 41175 932711 426928 [[2]] [1] 1693237 13462 mylist.txt 234984 10354 41175 932711 426928 1693237 13462 列表中的每个元素都有不同数量的元素 我想将此列表打印到如下文本文件: > print(head(mylist,2)) [[1]] [1] 23

我在R中有这样一个列表:

> print(head(mylist,2))
[[1]]
[1] 234984  10354  41175 932711 426928

[[2]]
[1] 1693237   13462
mylist.txt
234984  10354  41175 932711 426928
1693237   13462
列表中的每个元素都有不同数量的元素

我想将此列表打印到如下文本文件:

> print(head(mylist,2))
[[1]]
[1] 234984  10354  41175 932711 426928

[[2]]
[1] 1693237   13462
mylist.txt
234984  10354  41175 932711 426928
1693237   13462
我知道我可以使用sink(),但它会打印元素[[x]]、[y]的名称,我想避免使用它。此外,由于列表中每个元素的元素数量不同,因此无法使用write()或write.table()。

未测试,但应该可以使用(在注释后编辑)

另一种方式

writeLines(unlist(lapply(mylist, paste, collapse=" ")))

根据您的口味,尼科的回答有一个替代方案:

d<-lapply(mylist, write, file=" ... ", append=T);
d这里是另一个

cat(sapply(mylist, toString), file, sep="\n")

下面是使用水槽的另一种方法:


sink(sink\u dir\u和文件名);打印(你的名单);sink()。我的一些工作也遇到了这个问题,我希望有人能找到比我发现的更好的答案,但是没有人回应他们的问题

因此: @ali、@FMKerckhof和@Kerry我发现保存嵌套列表的唯一方法是像user6585653建议的那样使用sink()(我试图投票支持他的答案,但没有成功)。这不是最好的方法,因为您链接了文本文件,这意味着如果不取消接收器,文本文件很容易被重写,或者其他结果可能保存在该文件中。请参见下面的代码

sink("mylist.txt")
print(mylist)
sink()

确保将sink()放在代码末尾,以便取消sink。

我通过混合上述解决方案来解决此问题

sink("/Users/my/myTest.dat")
writeLines(unlist(lapply(k, paste, collapse=" ")))
sink()

我认为它工作得很好

格式不会完全相同,但它会将数据写入一个文本文件,当您想再次将其作为列表检索时,R将能够使用
dget
重新读取它

dput(mylist, "mylist.txt")

测试。工作您也可以使用速记:
lappy(mylist,write,“test2.txt”,append=TRUE)
仅一个重要细节,您需要指定write函数的ncolumns参数,否则将只将行修剪为5列:
lappy(mylist,write,“test3.txt”,append=T,ncolumns=1000)
实际上
write
已修改
cat
(请参见代码),因此备选方案可能是
lappy(mylist,cat,“\n”,file=“test.txt”,append=TRUE)
@Marek每次我在列表中使用此选项时,它都会显示“cat中的错误(…)、file、sep、fill、labels、append):参数1(键入“list”)“猫”无法处理,除非我读错了,否则我尝试了每个人对我的列表对象的建议,但没有一个有效。@Kerry我只能猜测,但我认为您的列表是嵌套的(列表列表)。您可以通过
sapply(mylist,class)
检查它,如果有值
“list”
表示您得到了嵌套列表。谢谢。这对我有用。对于其他解决方案,我收到了一个错误“…无法由“cat”处理?”?如果我在列表中有两个数据帧,并且我想将主题导出到txt并保持表的结构,那么我可以问您解决方案是什么吗?他们之间我想有一个空的行。伟大的解决方案!其他人给了我一个错误,这一个非常适合我的嵌套列表。