我在R中有一个看起来像这样的变量
> q
[1] 0.4231
Levels: 0.4231
我想摆脱那种疯狂的关卡。我只想要价值。我该怎么做呢。我试过了
> as.numeric(q)
[1] 1
哪个不起作用。
例如,我想做一些简单的算术,例如q+1
,我目前无法做到
> q+1
[1] NA
Warning message:
In Ops.factor(q, 1) : + not meaningful for factors
答案 0 :(得分:3)
我认为你忘了做一些简单的步骤。
首先,如果要将q转换为数字,as.numeric(q)
仅返回q,就像它是数字一样,而不将q本身转换为数字。其次,你不能直接从因子到数字;你需要将它转换为字符,然后数字。
这是我在下面尝试过的:
我复制了你的例子:
q<-as.factor(0.423)
q
[1] 0.423
Levels: 0.423
as.numeric(q)
[1] 1
q+1
[1] NA
Warning message:
In Ops.factor(q, 1) : + not meaningful for factors
告诉您无法直接将因子更改为数字:请参阅q + 1不是eu
q<-as.numeric(q)
q+1
[1] 2
最后,这是将因子q转换为数字字符串的正确方法:
q<-as.numeric(as.character((q)))
q+1
[1] 1.423