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