Come risolvere: errore in xy.coords(x, y, xlabel, ylabel, log): le lunghezze "x" e "y" differiscono


Un errore comune che potresti riscontrare in R è:

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

Questo errore si verifica quando si tenta di creare un grafico di due variabili ma le variabili non hanno la stessa lunghezza.

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di provare a creare un grafico a dispersione delle seguenti due variabili 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

Riceviamo un errore perché le lunghezze di xey non sono uguali.

Possiamo confermarlo stampando la lunghezza di ciascuna variabile:

 #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

Come correggere l’errore

Il modo più semplice per correggere questo errore è semplicemente assicurarsi che i due vettori abbiano la stessa lunghezza:

 #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)

Se un vettore risulta essere più corto dell’altro, puoi scegliere di tracciare solo i valori fino alla lunghezza del vettore più corto.

Ad esempio, se il vettore xa ha 4 valori e il vettore y ha 6 valori, potremmo creare un grafico a dispersione utilizzando solo i primi 4 valori di ciascun vettore:

 #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)])

Si noti che solo i primi quattro valori di ciascun vettore vengono utilizzati per creare la nuvola di punti.

Risorse addizionali

Come risolvere in R: NA introdotte dalla coercizione
Come riparare in R: suggerimento fuori limite
Come risolvere il problema: la lunghezza dell’oggetto maggiore non è un multiplo della lunghezza dell’oggetto minore

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *