0

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

1 回答 1

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
于 2013-12-10T04:06:58.783 回答