2016-07-06 150 views
0

我在導出數據框從列表到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 

謝謝你的幫助。

回答

4

假設您的列表名爲:

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) 
+0

謝謝。打印方法的替代方案是我想要的。是否也可以從書面文件中刪除行名稱? – Eco06

+0

我在表格的最後發現了一個警告按鈕:[達到了getOption(「max.print」) - 省略了3639行]?! – Eco06