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

Aca*_*car 3 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"
Run Code Online (Sandbox Code Playgroud)

现在当我想用文件写入文件时

write(data,"data.txt")
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说

cat中的错误(列表(...),文件,sep,fill,labels,append):'cat'无法处理参数1(类型'list')

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

tho*_*hal 6

其实,你data 一个data.frame:

class(data)
# [1] "data.frame"
Run Code Online (Sandbox Code Playgroud)

问题是write不能很好地处理数据框架,但可以使用矩阵:

write(as.matrix(data), "test.txt")
Run Code Online (Sandbox Code Playgroud)

如果要将数据帧写入文件,请使用write.table:

write.table(data, "test.txt")
Run Code Online (Sandbox Code Playgroud)

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