不能强制'list'对象在R中键入'double'-as.numeric

问题描述

就像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)

解决方法

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