4列の大きなデータフレーム( "myfile")では、最初の4列に基づいて条件付きで値を持つ5番目の列を追加する必要があります。
主に大規模なデータセットでの速度のために、dplyr
とmutate
で回答を優先します。
私のデータフレームは次のようになります。
V1 V2 V3 V4
1 1 2 3 5
2 2 4 4 1
3 1 4 1 1
4 4 5 1 3
5 5 5 5 4
...
5番目の列(V5)の値は、いくつかの条件付きルールに基づいています。
if (V1==1 & V2!=4) {
V5 <- 1
} else if (V2==4 & V3!=1) {
V5 <- 2
} else {
V5 <- 0
}
次に、mutate
関数を使用して、すべての行でこれらのルールを使用します(遅いループを回避するため)。このようなもの(そして、はい、私はそれがこのように機能しないことを知っています!):
myfile <- mutate(myfile, if (V1==1 & V2!=4){V5 = 1}
else if (V2==4 & V3!=1){V5 = 2}
else {V5 = 0})
これは結果であるはずです:
V1 V2 V3 V4 V5
1 1 2 3 5 1
2 2 4 4 1 2
3 1 4 1 1 0
4 4 5 1 3 0
5 5 5 5 4 0
でこれを行う方法はdplyr
?
NA
、(NaN, +Inf, -Inf
)?