R级别令人烦恼,简单的问题

时间:2013-12-10 03:52:50

标签: r levels

我在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

1 个答案:

答案 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