Hoe op te lossen in r: onjuist aantal indices op matrix
Een fout die je tegen kunt komen in R is:
Error in x[i, ] <- 0: incorrect number of subscripts on matrix
Deze fout treedt op wanneer u probeert een waarde toe te kennen aan een positie in een vector, maar per ongeluk een komma toevoegt alsof u een waarde toewijst aan een rij- en kolompositie in een matrix.
In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.
Voorbeeld 1: Een fout voor een enkele waarde herstellen
Stel dat we de volgende vector in R hebben met 5 waarden:
#definevector
x <- c(4, 6, 7, 7, 15)
Stel nu dat we proberen de waarde “22” toe te kennen aan het derde element van de vector:
#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
We ontvangen een foutmelding omdat we een komma hebben toegevoegd bij het toewijzen van de nieuwe waarde.
In plaats daarvan hoeven we alleen maar de opdracht te verwijderen:
assign the value '22' to element in third position x[3] <- 22 #display updated vector x [1] 4 6 22 7 15
Voorbeeld 2: corrigeer een fout in een for-lus
Deze fout kan ook optreden bij het vervangen van meerdere waarden in een vector met behulp van een ‚for‘-lus.
De volgende code probeert bijvoorbeeld elke waarde in een vector te vervangen door een nul:
#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
We ontvangen een foutmelding omdat we een komma hebben toegevoegd bij het toewijzen van nullen.
In plaats daarvan hoeven we alleen maar de opdracht te verwijderen:
#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
Zodra de komma is verwijderd, wordt de code zonder fouten uitgevoerd.
Aanvullende bronnen
Hoe op te lossen in R: NA’s geïntroduceerd door dwang
Hoe te repareren in R: index buiten bereik
Fout in R oplossen: onjuist aantal dimensies