2016-09-22 81 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

因此,如何为这个解决方案与其他答案不同吗? –

相关问题