R'de nasıl düzeltilir: bağımsız değişken sıfır uzunluktadır
R’yi kullanırken karşılaşabileceğiniz bir hata mesajı:
Error in if (x < 10) {: argument is of length zero
Bu hata genellikle R’deki bir if ifadesinde mantıksal bir karşılaştırma yapmaya çalıştığınızda ortaya çıkar, ancak karşılaştırmada kullandığınız değişkenin uzunluğu sıfırdır.
Sıfır uzunluklu değişkenlerin iki örneği numeric() veya Character(0)’ dır.
Aşağıdaki örnekte bu hatanın pratikte nasıl çözüleceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
R’de sıfır uzunluklu aşağıdaki sayısal değişkeni oluşturduğumuzu varsayalım:
#create numeric variable with length of zero
x <- numeric()
Şimdi bu değişkeni bir if ifadesinde kullanmaya çalıştığımızı varsayalım :
#if x is less than 10, print x to console
if(x < 10 ) {
x
}
Error in if (x < 10) {: argument is of length zero
Tanımladığımız değişkenin uzunluğu sıfır olduğu için hata alıyoruz.
Eğer basitçe gerçek değere sahip bir sayısal değişken yaratsaydık, if ifadesini kullanırken hiçbir zaman bu hatayı almazdık:
#create numeric variable
y <- 5
#if y is less than 10, print y to console
if(y < 10 ) {
y
}
[1] 5
Hata nasıl önlenir
Sıfır bağımsız değişken uzunluğu hatasını önlemek için aşağıdaki mantığı kullanan bir isTRUE işlevi eklememiz gerekir:
is. logical (x) && length(x) == 1 && !is. na (x) && x
Bu fonksiyonu if ifadesinde kullanırsak değişkenimizi bir değerle karşılaştırırken hata almayız:
if(isTRUE(x) && x < 10 ) {
x
}
Bir hata almak yerine hiçbir çıktı alamıyoruz çünkü isTRUE(x) işlevi FALSE olarak değerlendiriyor, yani x’in değeri hiçbir zaman yazdırılmıyor.
Ek kaynaklar
Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
R’de nasıl düzeltilir: bağımsız değişkenler farklı sayıda satır içerir
R’de nasıl düzeltilir: kullanılmayan bağımsız değişkenlerin seçiminde hata
R’de nasıl onarılır: değiştirmenin uzunluğu sıfırdır