Como corrigir: erro em plot.window(…): precisa de valores do arquivo 'xlim'
Um erro que você pode encontrar ao usar R é:
Error in plot.window(...): need finite 'xlim' values
Este erro ocorre quando você tenta criar um gráfico em R e usa um vetor de caracteres ou um vetor com apenas valores NA no eixo x.
Os exemplos a seguir mostram dois cenários diferentes nos quais esse erro pode ocorrer na prática.
Exemplo 1: Erro com vetor de caracteres
Suponha que você esteja tentando criar um gráfico de dispersão usando o seguinte código:
#define data
x <- c('A', 'B', 'C', 'D', 'E', 'F')
y <- c(3, 6, 7, 8, 14, 19)
#attempt to create scatterplot
plot(x, y)
Error in plot.window(...): need finite 'xlim' values
Estamos recebendo um erro porque o vetor que usamos para os valores do eixo x é um vetor de caracteres.
Para corrigir esse erro, precisamos simplesmente fornecer um vetor numérico ao eixo x:
#define two numeric vectors
x <- c(1, 2, 3, 4, 5, 6)
y <- c(3, 6, 7, 8, 14, 19)
#create scatterplot
plot(x, y)
Somos capazes de criar o gráfico de dispersão sem erros porque fornecemos um vetor numérico para o eixo x.
Exemplo 2: Erro com o vetor de valor NA
Suponha que você esteja tentando criar um gráfico de dispersão usando o seguinte código:
#define data
x <- c(NA, NA, NA, NA, NA, NA)
y <- c(3, 6, 7, 8, 14, 19)
#attempt to create scatterplot
plot(x, y)
Error in plot.window(...): need finite 'xlim' values
Estamos recebendo um erro porque o vetor que usamos para os valores do eixo x é um vetor com apenas valores NA.
Para corrigir esse erro, precisamos simplesmente fornecer um vetor numérico ao eixo x:
#define two numeric vectors
x <- c(1, 5, 9, 13, 19, 22)
y <- c(3, 6, 7, 8, 14, 19)
#create scatterplot
plot(x, y)
Mais uma vez, conseguimos criar um gráfico de dispersão sem erros porque usamos um vetor numérico para o eixo x.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns no R:
Como corrigir erro R: constante de string inesperada
Como corrigir erro R: valor discreto fornecido em escala contínua
Como corrigir o erro R: o argumento não é numérico nem lógico: retorna na