Cara memperbaikinya di r: argumen panjangnya nol
Pesan kesalahan yang mungkin Anda temui saat menggunakan R adalah:
Error in if (x < 10) {: argument is of length zero
Kesalahan ini biasanya terjadi ketika Anda mencoba melakukan perbandingan logis dalam pernyataan if di R, namun variabel yang Anda gunakan dalam perbandingan panjangnya nol.
Dua contoh variabel panjang nol adalah numerik() atau Karakter(0) .
Contoh berikut menunjukkan cara mengatasi kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita membuat variabel numerik berikut di R dengan panjang nol:
#create numeric variable with length of zero
x <- numeric()
Sekarang misalkan kita mencoba menggunakan variabel ini dalam pernyataan if:
#if x is less than 10, print x to console
if(x < 10 ) {
x
}
Error in if (x < 10) {: argument is of length zero
Kami menerima kesalahan karena variabel yang kami definisikan memiliki panjang nol.
Jika kita hanya membuat variabel numerik dengan nilai riil, kita tidak akan pernah menerima kesalahan ini saat menggunakan pernyataan if:
#create numeric variable
y <- 5
#if y is less than 10, print y to console
if(y < 10 ) {
y
}
[1] 5
Bagaimana menghindari kesalahan tersebut
Untuk menghindari kesalahan panjang argumen nol , kita perlu menyertakan fungsi isTRUE , yang menggunakan logika berikut:
is. logical (x) && length(x) == 1 && !is. na (x) && x
Jika kita menggunakan fungsi ini dalam pernyataan if, kita tidak akan menerima kesalahan saat membandingkan variabel kita dengan suatu nilai:
if(isTRUE(x) && x < 10 ) {
x
}
Alih-alih menerima kesalahan, kita justru tidak menerima keluaran karena fungsi isTRUE(x) dievaluasi menjadi FALSE , artinya nilai x tidak pernah dicetak.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya di R:
Cara memperbaikinya di R: argumen melibatkan jumlah baris yang berbeda
Cara memperbaiki kesalahan R: dalam memilih argumen yang tidak digunakan
Cara memperbaiki di R: penggantian memiliki panjang nol