为了学习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
?为什么不使用数据帧?
由于
答案 0 :(得分:2)
数据框实际上只是矢量列表。来自哈德利的Advanced R:
因为
data.frame
是一个S3类,它的类型反映了用于构建它的底层向量:列表。要检查对象是否为数据框,请使用class()
或使用is.data.frame()
明确测试。
您应该注意,因此在数据框上调用length()
会返回列数,而不是行数。尝试:
length(spamd)
ncol(spamd)
nrow(spamd)