R'de nasıl düzeltilir: koşulun uzunluğu > 1'dir ve yalnızca ilk öğe kullanılacaktır
R’de karşılaşabileceğiniz bir hata:
Warning message: In if (x > 1) {: the condition has length > 1 and only the first element will be used
Bu hata, bir koşulu kontrol etmek için if() işlevini kullanmaya çalıştığınızda ancak if() işlevine tek tek öğeler yerine bir vektör ilettiğinizde ortaya çıkar.
Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.
Hata nasıl yeniden oluşturulur?
R’de aşağıdaki vektöre sahip olduğumuzu varsayalım:
#define data
x <- c(2, 3, 1, 1, 5, 7)
Şimdi x vektörünün her değerinin 1’den büyük olup olmadığını kontrol etmek için if() işlevini kullanmaya çalıştığımızı ve ardından bu değerleri 2 ile çarptığımızı varsayalım:
#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
if() ifadesine bir vektör aktardığımız için bir uyarı mesajı alıyoruz.
Bir if() ifadesi bir kerede bir vektörün yalnızca bir elemanını kontrol edebilir, ancak bu kodu kullanarak vektörün her bir elemanını bir kerede kontrol etmeye çalıştık.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu bunun yerine ifelse() işlevini kullanmaktır:
#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
Varsayılan olarak ifelse() işlevi bir vektörün her öğesini tek tek kontrol eder. Bu, daha önce karşılaştığımız hatadan kaçınmamızı sağlar.
ifelse() fonksiyonunun ürettiği çıktı değerlerini şu şekilde üretmektedir:
- İlk eleman (2) 1’den büyüktü, dolayısıyla 2*2 = 4 elde etmek için bunu 2 ile çarptık
- İkinci eleman (3) 1’den büyüktü, dolayısıyla onu 2 ile çarparak 3*2 = 6 elde ettik.
- Üçüncü eleman (1) 1’den büyük olmadığından onu olduğu gibi bıraktık: 1
- Dördüncü eleman (1) 1’den büyük olmadığından onu olduğu gibi bıraktık: 1
Ve benzeri.
İlgili: R’de Yuvalanmış For Döngüsü Nasıl Yazılır
Ek kaynaklar
Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl çözüleceği açıklanmaktadır:
R’de nasıl düzeltilir: Zorlamayla ortaya çıkan NA’lar
R’de nasıl düzeltilir: dim(X) pozitif uzunluğa sahip olmalıdır
R’de nasıl düzeltilir: Adlar önceki adlarla eşleşmiyor
R’de nasıl düzeltilir: Daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir
R’de nasıl düzeltilir: kontrastlar yalnızca 2 veya daha fazla seviyeye sahip faktörlere uygulanabilir