R'de nasıl düzeltilir: matriste yanlış sayıda endeks
R’de karşılaşabileceğiniz bir hata:
Error in x[i, ] <- 0: incorrect number of subscripts on matrix
Bu hata, bir vektördeki bir konuma değer atamaya çalıştığınızda, ancak sanki bir matristeki bir satır ve sütun konumuna değer atıyormuşsunuz gibi yanlışlıkla virgül eklediğinizde ortaya çıkar.
Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.
Örnek 1: Tek bir değere ilişkin hatayı düzeltme
R’de 5 değerli aşağıdaki vektöre sahip olduğumuzu varsayalım:
#definevector
x <- c(4, 6, 7, 7, 15)
Şimdi vektörün üçüncü elemanına “22” değerini atamaya çalıştığımızı varsayalım:
#attempt to assign the value '22' to element in third position
x[3, ] <- 22
Error in x[3, ] <- 22: incorrect number of subscripts on matrix
Yeni değeri atamaya çalışırken virgül eklediğimiz için hata alıyoruz.
Bunun yerine şu komutu kaldırmamız yeterli:
assign the value '22' to element in third position x[3] <- 22 #display updated vector x [1] 4 6 22 7 15
Örnek 2: for döngüsündeki bir hatayı düzeltin
Bu hata, ‘for’ döngüsü kullanılarak bir vektördeki birden çok değeri değiştirmeye çalışırken de ortaya çıkabilir.
Örneğin, aşağıdaki kod bir vektördeki her değeri sıfırla değiştirmeye çalışır:
#definevector
x <- c(4, 6, 7, 7, 15)
#attempt to replace every value in vector with zero
for (i in 1:length(x)) {
x[i, ]=0
}
Error in x[i, ] = 0: incorrect number of subscripts on matrix
Sıfır atamaya çalışırken virgül eklediğimiz için hata alıyoruz.
Bunun yerine şu komutu kaldırmamız yeterli:
#definevector
x <- c(4, 6, 7, 7, 15)
#replace every value in vector with zero
for (i in 1:length(x)) {
x[i]=0
}
#view updated vector
x
[1] 0 0 0 0 0
Virgül kaldırıldığında kod hatasız çalışır.
Ek kaynaklar
R’de nasıl düzeltilir: Zorlamayla ortaya çıkan NA’lar
R’de nasıl onarılır: sınırların dışında dizin
R’deki hata nasıl düzeltilir: yanlış boyut sayısı