Cara memperbaikinya di r: kondisi memiliki panjang > 1 dan hanya elemen pertama yang akan digunakan
Kesalahan yang mungkin Anda temui di R adalah:
Warning message: In if (x > 1) {: the condition has length > 1 and only the first element will be used
Kesalahan ini terjadi ketika Anda mencoba menggunakan fungsi if() untuk memeriksa suatu kondisi, namun Anda meneruskan vektor ke fungsi if() alih-alih elemen individual.
Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki vektor berikut di R:
#define data
x <- c(2, 3, 1, 1, 5, 7)
Sekarang misalkan kita mencoba menggunakan fungsi if() untuk memeriksa apakah setiap nilai vektor x lebih besar dari 1, lalu kalikan nilai tersebut dengan 2:
#if value in vector x is greater than 1, multiply it by 2
if (x>1) {
x*2
}
Warning message:
In if (x > 1) {:
the condition has length > 1 and only the first element will be used
Kita menerima pesan peringatan karena kita meneruskan vektor ke pernyataan if() .
Pernyataan if() hanya dapat memeriksa satu elemen vektor pada satu waktu, namun dengan menggunakan kode ini kami mencoba memeriksa setiap elemen vektor pada satu waktu.
Bagaimana cara memperbaiki kesalahan tersebut
Cara termudah untuk memperbaiki kesalahan ini adalah dengan menggunakan fungsi ifelse() :
#if value in vector x is greater than 1, multiply it by 2
ifelse(x>1, x*2, x)
[1] 4 6 1 1 10 14
Secara default, fungsi ifelse() memeriksa setiap elemen vektor satu per satu. Hal ini memungkinkan kita untuk menghindari kesalahan yang kita temui sebelumnya.
Berikut adalah cara fungsi ifelse() menghasilkan nilai output yang dihasilkannya:
- Elemen pertama (2) lebih besar dari 1, jadi kita kalikan dengan 2 untuk mendapatkan 2*2 = 4
- Elemen kedua (3) lebih besar dari 1, jadi kita kalikan dengan 2 untuk mendapatkan 3*2 = 6
- Elemen ketiga (1) tidak lebih besar dari 1, jadi kita biarkan apa adanya: 1
- Elemen keempat (1) tidak lebih besar dari 1, jadi kita biarkan apa adanya: 1
Dan seterusnya.
Terkait: Cara Menulis Loop For Bersarang di R
Sumber daya tambahan
Tutorial berikut menjelaskan cara mengatasi kesalahan umum lainnya di R:
Cara memperbaikinya di R: NA yang diperkenalkan dengan paksaan
Cara memperbaikinya di R: dim(X) harus panjangnya positif
Cara memperbaiki di R: Nama tidak sesuai dengan nama sebelumnya
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaikinya di R: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih