2016-09-22 33 views
3

我想使用write函數將數據幀寫入文件,但這不起作用,因爲data.frame()將其創建爲列表。R創建一個列表,而不是數據幀

生殖例如:

data <- data.frame(cbind(1:2,3:4)) 
typeof(data) 
data 
# X1 X2 
#1 1 3 
#2 2 4 
#> typeof(data) 
#[1] "list" 

現在,當我想寫使用

write(data,"data.txt") 

我得到一個錯誤說在貓

錯誤(列表(文件... ),file,sep,fill,labels,append): 參數1(類型'list')不能由'cat'處理

這顯然發生,因爲數據是一個列表,但我不明白爲什麼它是一個列表。我正在運行R 3.1.3

+0

'write.csv'可能是你想要的... – cory

回答

6

其實,你data一個data.frame

class(data) 
# [1] "data.frame" 

的問題是,write不與數據幀的處理很好,但將與矩陣工作:

write(as.matrix(data), "test.txt") 

如果你想將數據幀寫入文件使用write.table

write.table(data, "test.txt") 

錯誤消息來自底層的cat函數,並且data.frame概念上是一個長度相同的向量列表。

0

write.table(data,"data.txt")怎麼樣?

0

data.frame是具有相同長度的向量結構的列表。您可以使用typeof (df)來查看它將df的類型(這裏是一個示例data.frame)顯示爲「list」。

您可以使用write.table寫data.frame到一個文本文件,如下所示:

write.table(df, "filename.txt", sep = "\t", row.names = FALSE)

+2

因此,如何爲這個解決方案與其他答案不同嗎? –

相關問題