';列表';对象不能强制为类型';双倍';-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)``一起工作