Jak naprawić w r: nieprawidłowa liczba indeksów na matrixie


Błąd, który możesz napotkać w R to:

 Error in x[i, ] <- 0: incorrect number of subscripts on matrix

Ten błąd występuje, gdy próbujesz przypisać wartość do pozycji w wektorze, ale przypadkowo dodajesz przecinek, tak jakbyś przypisywał wartość do pozycji wiersza i kolumny w macierzy.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Przykład 1: Naprawianie błędu dla pojedynczej wartości

Załóżmy, że mamy następujący wektor w R z 5 wartościami:

 #definevector
x <- c(4, 6, 7, 7, 15)

Załóżmy teraz, że próbujemy przypisać wartość „22” trzeciemu elementowi wektora:

 #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

Otrzymujemy błąd, ponieważ podczas próby przypisania nowej wartości umieściliśmy przecinek.

Zamiast tego musimy po prostu usunąć polecenie:

 assign the value '22' to element in third position
x[3] <- 22

#display updated vector
x

[1] 4 6 22 7 15

Przykład 2: popraw błąd w pętli for

Ten błąd może również wystąpić podczas próby zamiany wielu wartości w wektorze za pomocą pętli „for”.

Na przykład poniższy kod próbuje zastąpić każdą wartość w wektorze zerem:

 #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

Otrzymujemy błąd, ponieważ przy próbie przypisania zer umieściliśmy przecinek.

Zamiast tego musimy po prostu usunąć polecenie:

 #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

Po usunięciu przecinka kod działa bez błędów.

Dodatkowe zasoby

Jak naprawić w R: NA wprowadzone przez przymus
Jak naprawić w R: indeks poza zakresem
Jak naprawić błąd w R: nieprawidłowa liczba wymiarów

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *