R:导出列表并将其导入.txt文件

时间:2014-12-10 23:29:09

标签: r list export-to-csv

This post建议了一种将列表写入文件的方法。

lapply(mylist, write, "test.txt", append=TRUE, ncolumns=1000)

这项技术的问题在于列表的部分信息(子部分的结构和子部分的名称)消失了,因此重新创建原始文件非常复杂(或者如果我们丢失了额外的信息,则不可能)从文件中列出。

导出和导入(不会导致任何修改,包括名称)列表的最佳解决方案是什么?

3 个答案:

答案 0 :(得分:0)

您可以使用这些命令保存列表(假设没有包含点的元素名称)

l1 <- list(a = 1, b = list(c = 1, d = 2))
vectorElements <- unlist(l1)
vectorPaths <- names(vectorElements)
vectorRows <- paste(vectorPaths, vectorElements)
write.table(vectorRows, "vectorRows.txt", row.names = FALSE, col.names = FALSE, quote = FALSE)

文件的每一行对应于此格式的元素

node1.node2.node3 leaf

然后,您将能够重新构建列表结构。

答案 1 :(得分:0)

您可以使用yaml库:

R> library(yaml)
R> l1 <- list('1'=2, se7en=list('som:eth|ng~horr1ßl€'=42))
R> l1
$`1`
[1] 2

$se7en
$se7en$`som:eth|ng~horr1ßl€`
[1] 42
R> cat(as.yaml(l1), file='blah.txt')
R> l2 <- yaml.load_file('blah.txt')
R> l2
$`1`
[1] 2

$se7en
$se7en$`som:eth|ng~horr1ßl€`
[1] 42

答案 2 :(得分:0)

我使用CPAN YAML package

将列表导出为YAML格式
l <- list(a="1", b=1, c=list(a="1", b=1))
yaml::write_yaml(l, "list.yaml")

YAML的好处,它是一种人类可读的文本格式,因此易于阅读或共享

$ cat list.yaml
a: '1'
b: 1.0
c:
  a: '1'
  b: 1.0
相关问题