我想使用write
函数将数据框写入文件,但这不起作用,因为data.frame()
将其创建为列表。
生殖实例:
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")
我收到错误说
cat(list(...),file,sep,fill,labels,append)出错: 参数1(类型'list')不能由'cat'处理
这显然是因为数据是一个列表,但我不明白为什么它是一个列表。我正在运行R 3.1.3
答案 0 :(得分: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
概念上是相同长度的向量列表这一事实。
答案 1 :(得分:0)
write.table(data,"data.txt")
怎么样?
答案 2 :(得分:0)
data.frame是相同长度的矢量结构列表。您可以使用typeof (df)
查看它将df的类型(此处为data.frame示例)显示为“list”。
您可以使用write.table将data.frame写入文本文件,如下所示:
write.table(df, "filename.txt", sep = "\t", row.names = FALSE)