';列表';对象不能强制为类型';双倍';-R中的as.numeric()

';列表';对象不能强制为类型';双倍';-R中的as.numeric(),r,dataframe,numeric,R,Dataframe,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 <- lappl

像在
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)
数据(“iris”)
>is.数字(iris)
[1] 假的
虹膜是数字的(虹膜)
[1] 假的
>iris是数字的(iris)
[1] 对###但现在它只有一列(而不是5列)

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

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

不清楚您在这里试图实现什么,但可能是
数据。矩阵(iris)
是您要寻找的。iris的物种列是一个因素。在最后一部分中,您将因子列强制为数字,因此它可以工作。。不太确定您在这里要做的是
iris
是一个
data.frame
,因此决不是一个
数值的
。即使将其所有列设置为
numeric
s(但请参见StupidWolf的警告),也不会使表本身成为
numeric
.OMG@康拉德鲁道夫,我不知道。就像@nicola建议的那样,它与``data.matrix(iris)``一起工作不清楚您试图在这里实现什么,但可能
数据。矩阵(iris)
是您正在寻找的。iris的物种列是一个因素。在最后一部分中,您将因子列强制为数字,因此它可以工作。。不太确定您在这里要做的是
iris
是一个
data.frame
,因此决不是一个
数值的
。即使将其所有列设置为
numeric
s(但请参见StupidWolf的警告),也不会使表本身成为
numeric
.OMG@康拉德鲁道夫,我不知道。就像@nicola建议的那样,它与``data.matrix(iris)``一起工作