Como corrigir: erro em xy.coords(x, y, xlabel, ylabel, log): comprimentos 'x' e 'y' diferentes


Um erro comum que você pode encontrar em R é:

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

Este erro ocorre quando você tenta criar um gráfico de duas variáveis, mas as variáveis não têm o mesmo comprimento.

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que estejamos tentando criar um gráfico de dispersão das duas variáveis a seguir em 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

Recebemos um erro porque os comprimentos de xey não são iguais.

Podemos confirmar isso imprimindo o comprimento de cada variável:

 #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

Como corrigir o erro

A maneira mais fácil de corrigir esse erro é simplesmente garantir que os dois vetores tenham o mesmo comprimento:

 #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 um vetor for mais curto que o outro, você poderá optar por representar graficamente apenas os valores até o comprimento do vetor mais curto.

Por exemplo, se o vetor xa tiver 4 valores e o vetor y tiver 6 valores, poderíamos criar um gráfico de dispersão usando apenas os 4 primeiros valores de cada vetor:

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

Observe que apenas os primeiros quatro valores de cada vetor são usados para criar a nuvem de pontos.

Recursos adicionais

Como corrigir em R: NAs introduzidos por coerção
Como reparar em R: dica fora dos limites
Como corrigir: o comprimento maior do objeto não é um múltiplo do comprimento menor do objeto

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *