R'de nasıl onarılır: değiştirmenin uzunluğu sıfırdır


R’de karşılaşabileceğiniz bir hata:

 Error in x[1] = x[0]: replacement has length zero

Bu hata, bir vektördeki bir değeri “sıfır uzunluğa sahip”, yani var olmayan başka bir değerle değiştirmeye çalıştığınızda 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 10 değere sahip aşağıdaki vektörü oluşturduğumuzu varsayalım:

 data = c(1, 4, 5, 5, 7, 9, 12, 14, 15, 17)

Şimdi vektördeki her değeri kendisinden önceki değerle çarpmak için aşağıdaki for() döngüsünü kullanmaya çalıştığımızı varsayalım:

 for (i in 1: length (data)) {
  data[i] = data[i] * data[i-1]
}

Error in data[i] <- data[i] * data[i - 1]: replacement has length zero

İlk döngüde aşağıdaki çarpma işlemini gerçekleştirmeye çalıştığımız için ” değiştirme sıfır uzunluğa sahip ” hatasını alıyoruz:

  • veri[1] * veri[0]

R indeksleri 1’den başladığı için data[0] değeri mevcut değildir.

Bunu, vektörün 0 konumunda bulunan değeri yazdırmaya çalışarak kontrol edebiliriz:

 print (data[0])

numeric(0)

Sonuç, uzunluğu 0 olan bir dijital vektördür; başka bir deyişle mevcut değildir.

Hata nasıl düzeltilir?

Bu hatayı düzeltmenin yolu, vektörün var olmayan bir değerine erişmeye çalışmayan bir for() döngüsünü kullanmaktır.

Örneğimizde for döngüsünü 1. konum yerine 2. dizin konumunda başlatarak bu hatayı düzeltebiliriz:

 for (i in 2: length (data)) {
  data[i] = data[i] * data[i-1]
}

#view updated vector
data

 [1] 1 4 20 100 700 6300 75600
 [8] 1058400 15876000 269892000

Vektörde var olmayan bir indeks konumuna asla erişmeye çalışmadığımız için bir hata almadığımızı unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:

“Koşulun uzunluğu > 1 ve yalnızca ilk öğe kullanılacak” sorununu düzeltme
Nasıl düzeltilir: Değiştirmede X satır var, veride Y var
Nasıl düzeltilir? İkili operatörün sayısal olmayan bağımsız değişkeni
Nasıl düzeltilir? dim(X) pozitif uzunluğa sahip olmalıdır
Nasıl düzeltilir? Kullanılmayan bağımsız değişkenlerin seçilmesinde hata

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir