R创建一个列表,而不是数据帧

R创建一个列表,而不是数据帧,r,R,我想使用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" 我听到一个错误说 cat(列表(…)、文件、sep、填充、标签、附加)中出错: 参数1(类型“list”)不能由“cat”处理 这显然是因为数据是一个列表,但我不明

我想使用
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"
我听到一个错误说

cat(列表(…)、文件、sep、填充、标签、附加)中出错: 参数1(类型“list”)不能由“cat”处理


这显然是因为数据是一个列表,但我不明白为什么它是一个列表。我正在运行R3.1.3

写.table(data,“data.txt”)怎么样?

实际上,你的
数据
是一个
数据框架

class(data)
# [1] "data.frame"
问题在于
write
不能很好地处理数据帧,但可以处理矩阵:

write(as.matrix(data), "test.txt")
如果要将数据帧写入文件,请使用
write.table

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

错误消息来自底层的
cat
函数以及
data.frame
在概念上是相同长度的向量列表这一事实

data.frame是相同长度的向量结构列表。您可以使用
typeof(df)
查看它是否将df的类型(这里是一个示例data.frame)显示为“list”

您可以使用write.table将data.frame写入文本文件,如下所示:


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

那么这个解决方案与其他答案有何不同呢?
?write.csv可能就是您想要的。。。
write.table(data, "test.txt")