2011-02-23 8 views
0

私は質問から大きなデータセットを持っています。それをSPSSからRにインポートすると(SPSSのStata-Outputを使用して)、それぞれの質問に対する答えが私に要素として与えられました。数値を数値に変更する - 使用できない値に対処する方法

質問には1から10までの回答がありますが、欠損値が多数あります。 Rもそれらを再認識します。

しかし、私はいくつかの計算をしたいと思います。たとえば、回答の平均を計算したいと思います。

私は数値を数値に変換する必要があります。私はas.numeric()でこれをしました。

しかし、今では11から14にエンコードされた値が欠落しています。もちろん、このような平均は計算できません。

因子を数値として再コードし、Rに10より大きい任意の値をNAに設定する適切な方法はありますか?

例: 魚が好きですか?

not at all     very much | don't know no answer don't tell 
R: 1 2 3 4 5 6 7 8 9 10 |  11   12   13 

答えて

3

あなたが本当に不足している値を必要としない場合、私のような何かをしたい

mean(a, na.rm=TRUE) 

代わりに、あなたの周りに仕事をしたい場合それらの欠けている値は、あなたはちょうど使用することができます:

mean(a[a<=10]) 
+0

ありがとう! – speendo

+0

もう1つの可能性があります(ちょうどあなたが知っているので): 'a'がdata.frameであり、 'fish'が変更したい変数の名前であると仮定します:$ fish = ifelse($ fish> 10、NA 、$魚)。 –

4

のは、(あなたが最初のコピーを取る場合があります)あなたのデータフレームdataを呼ぶことにしましょう。以下はNAにすべての列で10より大きいすべての値を設定します:

data[data>10]<-NA 

上記既にas.numericを適用した想定しています。 、そして、

a[a>10] <- NA 

あなたが使用することができます:

+0

ありがとう!私は決して変数定義の左側を使ったことはありません。非常に興味深い:) – speendo

関連する問題