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

时间:2016-09-22 14:10:01

标签: 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"

现在,当我想使用

写入文件时
write(data,"data.txt")

我收到错误说

  

cat(list(...),file,sep,fill,labels,append)出错:     参数1(类型'list')不能由'cat'处理

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

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)