【问题标题】:'list' object cannot be coerced to type 'double'- as.numeric() in R'list' 对象不能被强制输入'double'- R 中的 as.numeric()
【发布时间】:2020-08-24 09:38:14
【问题描述】:

iris 数据集一样,在我的数据中,所有列都被归类为数字,但整个 data.frame 未被归类为数字。以下代码显示了我尝试过的内容。 我希望 iris 是数字而不改变数据的形式

data("iris")
> is.numeric(iris)
[1] FALSE
iris <- as.numeric(iris)
ERROR: 'list' object cannot be coerced to type 'double'

> iris <- lapply(iris, as.numeric)
> is.numeric(iris)
[1] FALSE

> iris <- as.numeric(unlist(iris))
> is.numeric(iris)
[1] TRUE ##but now it is only one column (instead of 5)

【问题讨论】:

  • 不清楚你想在这里实现什么,但也许data.matrix(iris) 是你正在寻找的。​​span>
  • 鸢尾花的物种列是一个因素。在最后一部分中,您将因子列强制为数字,因此它可以工作.. 不太确定您在这里尝试做什么
  • irisdata.frame,因此绝不是 numeric。即使您将其所有列都设为numerics(但请参阅 StupidWolf 的警告),这也不会使表本身成为numeric
  • 天啊! @KonradRudolph,我不知道。就像@nicola 建议的那样,它适用于 ``` data.matrix(iris)``` 。 ;)

标签: r dataframe numeric


【解决方案1】:

numeric 是一种数据类型描述,仅对向量和矩阵有效。数据框是定义列表。如果其中的所有列都是数字,则没有理由希望数据框是数字。

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 2012-01-17
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 2016-05-24
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多