Dalam kerangka data besar ("myfile") dengan empat kolom saya harus menambahkan kolom kelima dengan nilai bersyarat berdasarkan empat kolom pertama.
Lebih suka jawaban dengan dplyrdan mutate, terutama karena kecepatannya dalam kumpulan data besar.
Dataframe saya terlihat seperti ini:
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
...
Nilai kolom kelima (V5) didasarkan pada beberapa aturan bersyarat:
if (V1==1 & V2!=4) {
V5 <- 1
} else if (V2==4 & V3!=1) {
V5 <- 2
} else {
V5 <- 0
}
Sekarang saya ingin menggunakan mutatefungsi untuk menggunakan aturan ini di semua baris (untuk menghindari loop lambat). Sesuatu seperti ini (dan ya, saya tahu itu tidak berfungsi seperti ini!):
myfile <- mutate(myfile, if (V1==1 & V2!=4){V5 = 1}
else if (V2==4 & V3!=1){V5 = 2}
else {V5 = 0})
Hasilnya akan seperti ini:
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
Bagaimana melakukan ini dplyr?
NA, (NaN, +Inf, -Inf)?