不成功(不可见?)转换为数据帧

时间:2017-03-09 11:52:23

标签: r list dataframe data-structures

为了学习R,我尝试导入纯文本文件中包含的数据(关于垃圾邮件)。

我使用了表函数,然后尝试使用this问题的两个答案将相应的对象转换为数据框。

这是代码。

file <- "./spam.data.txt"

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F)
spamd <- as.data.frame(spamd)
typeof(spamd)    # list

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F)
spamd <- as.data.frame.matrix(spamd)
typeof(spamd)    # list

为什么在这两种情况下,typeof()都会返回list?为什么不使用数据帧?

由于

1 个答案:

答案 0 :(得分:2)

数据框实际上只是矢量列表。来自哈德利的Advanced R

  

因为data.frame是一个S3类,它的类型反映了用于构建它的底层向量:列表。要检查对象是否为数据框,请使用class()或使用is.data.frame()明确测试。

您应该注意,因此在数据框上调用length()会返回列数,而不是行数。尝试:

length(spamd)
ncol(spamd)
nrow(spamd)