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 を数値として返すだけです。第 2 に、因数から直接数値に変換することはできません。文字に変換してから数値に変換する必要があります。

これは私が以下で試したことです:

私はあなたの例を再現しました:

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 に答える