2017-11-21 11 views
0

人の論理条件判定でエラーが発生しましたが、Rで論理判定を行う際に問題が発生しました。実際は直感的です。私は分かりませんが。シーケンス番号がR

私はデータフレーム "dat"を持っていて、 "dat"の1つのint varは "A"という名前で、 "A"の値に基づいて別のvar "B" = 16,17または18の場合、Bを6にする必要があります。しかし、 "dat $ B [dat $ A == 16:18] < - 6"を実行すると、BにNA Aは実際には16または17または18です。次に、次の行を指定してチェックし、結果はかなり奇妙に見えます。

個別に、15 + 15 + 15、合計で39ですが、どのように起こる可能性がありますか?それは45でなければなりません! (実際には、Bで6NAを得ました)

私はBの値をAの他の値に基づいて割り当てると、これが起こるのを知りたいのですが、 "dat $ B [dat $ A == 1:3] < - 1 "うまく動作します。また、Aは整数として分類され、他の関連する行もチェックしてあり、問題は次のようになっています(シーケンス番号で論理条件を判断するときに行があります)。

誰もがこれについて何か考えているのですが、なぜそれが起こったのですか?多数の数字(複数)で論理条件を実行するときに使用できるより良い方法はありますか?どうもありがとう!

和(DAT $ == 16)

[1] 15

和(DAT $ == 17)

[1] 15

sum(dat $ A == 18)

[1] 15

和(DAT $ ==夜04時18分)

を[1] 39

+0

try 'help("%in% ")' – duckmayr

+0

ありがとう!それは動作します~~~ – EmLp

答えて

0

このケースでは、DATを使用するのが適切であろう$ B [データ$ A%in%16:18] < - 6

+0

ありがとう!わかった。それは働く~~ – EmLp

関連する問題