Hoe op te lossen: fout in xy.coords(x, y, xlabel, ylabel, log): 'x' en 'y' lengtes verschillen


Een veel voorkomende fout die u in R kunt tegenkomen is:

 Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ 

Deze fout treedt op wanneer u probeert een plot van twee variabelen te maken, maar de variabelen niet dezelfde lengte hebben.

In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.

Hoe de fout te reproduceren

Stel dat we een spreidingsdiagram proberen te maken van de volgende twee variabelen in R:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#attempt to create scatterplot of x vs. y
plot(x, y)

Error in xy.coords(x, y, xlabel, ylabel, log): 
  'x' and 'y' lengths differ

We krijgen een foutmelding omdat de lengtes van x en y niet gelijk zijn.

We kunnen dit bevestigen door de lengte van elke variabele af te drukken:

 #print length of x
length(x)

[1] 4

#print length of y
length(y)

[1] 6

#check if length of x and y are equal
length(x) == length(y)

[1] FALSE

Hoe u de fout kunt oplossen

De eenvoudigste manier om deze fout op te lossen, is door er eenvoudigweg voor te zorgen dat de twee vectoren dezelfde lengte hebben:

 #define x and y variables to have same length
x <- c(2, 5, 5, 8, 9, 12)
y <- c(22, 28, 32, 35, 40, 41)

#confirm that x and y are the same length
length(x) == length(y)

[1] TRUE

create scatterplot of x vs. y
plot(x, y)

Als de ene vector korter blijkt te zijn dan de andere, kun je ervoor kiezen om alleen waarden te plotten tot de lengte van de kortere vector.

Als vector xa bijvoorbeeld 4 waarden heeft en vector y 6 waarden heeft, kunnen we een spreidingsdiagram maken met alleen de eerste 4 waarden van elke vector:

 #define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#create scatterplot of first 4 pairwise values of x vs. y
plot(x, y[1: length (x)])

Merk op dat alleen de eerste vier waarden van elke vector worden gebruikt om de puntenwolk te creëren.

Aanvullende bronnen

Hoe op te lossen in R: NA’s geïntroduceerd door dwang
Hoe te repareren in R: hint buiten de grenzen
Oplossing: Een langere objectlengte is geen veelvoud van een kortere objectlengte

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert