Como corrigir o erro: “dados” deve ser um dataframe ou outro objeto coercível por “fortify()”, não um vetor numérico


Um erro que você pode encontrar no R é:

 Error: `data` must be a data frame, or other object coercible by `fortify()`,
        not a digital vector

Este erro ocorre quando você tenta usar ggplot2 para plotar variáveis em um quadro de dados, mas você faz referência a um vetor em vez de um quadro de dados para o argumento de dados .

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8),
                 y=c(4, 8, 14, 19, 14, 13, 9, 9))

#view data frame
df

  xy
1 1 4
2 2 8
3 3 14
4 4 19
5 5 14
6 6 13
7 7 9
8 8 9

Agora suponha que estamos tentando criar um gráfico de dispersão para visualizar as variáveis xey no quadro de dados:

 library (ggplot2)

#attempt to create scatter plot
ggplot(df$x, aes(x=x, y=y)) +
    geom_point()

Error: `data` must be a data frame, or other object coercible by `fortify()`,
        not a digital vector

Estamos recebendo um erro porque referenciamos um vetor numérico ( df$x ) no argumento data para a função ggplot() em vez de um quadro de dados.

Como corrigir o erro

A maneira de corrigir esse erro é fazer referência a um quadro de dados para o argumento de dados na função ggplot() .

Em nosso exemplo, devemos usar df em vez de df$x para o argumento data :

 library (ggplot2)

#create scatterplot
ggplot(df, aes(x=x, y=y)) +
    geom_point()

Observe que desta vez conseguimos criar a nuvem de pontos com sucesso e sem erros.

Recursos adicionais

Os tutoriais a seguir explicam como resolver outros erros comuns em R:

Como corrigir: ggplot2 não sabe como lidar com dados de classe desiguais
Como corrigir: Erro em stripchart.default(x1,…): Método de plotagem inválido
Como corrigir: erro em eval (predvars, data, env): objeto ‘x’ não encontrado

Add a Comment

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