从列表导出数据帧到txt文件
问题描述:
我在导出数据框从列表到txt文件中有问题。我找到了一些解决方案,但它只适用于矢量。这里有一个例子:从列表导出数据帧到txt文件
dataframe1 <- data.frame(a= c(1,2,3,4,5), b= c(1,1,1,1,1))
dataframe2 <- data.frame(a= c(5,5,5), b= c(1,1,1))
mylist <- list(dataframe1, dataframe2)
我想的是,TXT文件看起来像这样:
$dataframe1
a b
1 1
2 1
3 1
4 1
5 1
$dataframe2
a b
5 1
5 1
5 1
谢谢你的帮助。
答
假设您的列表名为:
mylist<-structure(list(dataframe1 = structure(list(a = c(1, 2, 3, 4,
5), b = c(1, 1, 1, 1, 1)), .Names = c("a", "b"), row.names = c(NA,
-5L), class = "data.frame"), dataframe2 = structure(list(a = c(5,
5, 5), b = c(1, 1, 1)), .Names = c("a", "b"), row.names = c(NA,
-3L), class = "data.frame")), .Names = c("dataframe1", "dataframe2"
))
你可以试试:
con<-file("temp.csv",open="at")
Map(function(x,y) {cat(file=con,y,"\n");write.table(x,file=con,quote=FALSE,row.names=FALSE)},
mylist,names(mylist))
close(con)
上面会写上文件temp.csv
的文件。如果你想让它工作,你必须给名单上的名字。
另外,如果您没有问题的print
方法,你可以在标准输出重定向到一个文件:
sink("temp.csv")
print(mylist)
sink(NULL)
谢谢。打印方法的替代方案是我想要的。是否也可以从书面文件中删除行名称? – Eco06
我在表格的最后发现了一个警告按钮:[达到了getOption(“max.print”) - 省略了3639行]?! – Eco06