1

NA値をRのベクトル/マトリックスに挿入する方法を見つけようとしています.次のような操作トリックを使用しました:

    values = *expression* #assume values is a populated vector
    values = (values %% 2 == 0)(values/2) + (values%%2 == 1)*(3*values + 1)

したがって、これは値に基づいてベクターのエントリを条件付きで操作しますが、NA 値を挿入しながらこのタイプのメソッドを実行する方法がわかりません values = (values %% 2 == 0)*(values) + (values%%2 == 1)*(NA)

次のようなことができることがわかりました。

    for(i in 1:length(values))
    {
        if(values[i] %% 2 == 1){values[i] = NA}
    }

しかし、前の例のように、もう少し簡潔なものを希望していました。何かご意見は?

4

3 に答える 3

1

トリックを使用して何かを合計する必要はありません。これで十分です。

values = ifelse(values %% 2 == 0, values/2, NA)
于 2013-07-22T20:53:49.843 に答える
1

このような ?

v = (values %% 2 == 0)*(values/2) + ifelse(values%%2 == 1, NA, 0)

実際には、次のように書く方が安全です。

v = ifelse(values %% 2 ==0, values/2, 0) + ifelse(values%%2 == 1, NA, 0)
于 2013-07-22T16:28:41.170 に答える