【问题标题】:unsuccessful (invisible?) conversion to dataframe不成功(不可见?)转换为数据框
【发布时间】:2017-07-30 09:38:46
【问题描述】:

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

我使用了table函数,然后尝试将对应的对象转换为数据框,使用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?为什么不是数据框?

谢谢

【问题讨论】:

  • 您需要了解 R 中的数据结构的更多信息。请查看 class(spamd)。请注意,read.table 被记录为返回一个 data.frame。无需转换,

标签: r list dataframe data-structures


【解决方案1】:

数据框实际上只是向量列表。来自 Hadley 的 Advanced R

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2021-03-30
    • 2013-08-03
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多