Come correggere l'errore: "data" deve essere un dataframe o un altro oggetto coercibile da "fortify()", non un vettore numerico


Un errore che potresti riscontrare in R è:

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

Questo errore si verifica quando tenti di utilizzare ggplot2 per tracciare variabili in un frame di dati, ma fai riferimento a un vettore anziché a un frame di dati per l’argomento dati .

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di avere il seguente frame di dati in 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

Supponiamo ora di provare a creare un grafico a dispersione per visualizzare le variabili xey nel frame di dati:

 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

Stiamo ricevendo un errore perché abbiamo fatto riferimento a un vettore numerico ( df$x ) nell’argomento dati della funzione ggplot() anziché a un frame di dati.

Come correggere l’errore

Il modo per correggere questo errore è fare riferimento a un frame di dati per l’argomento data nella funzione ggplot() .

Nel nostro esempio, dovremmo usare df invece di df$x per l’argomento dati :

 library (ggplot2)

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

Tieni presente che questa volta siamo in grado di creare la nuvola di punti con successo senza errori.

Risorse addizionali

I seguenti tutorial spiegano come risolvere altri errori comuni in R:

Come risolvere: ggplot2 non sa come gestire dati di classi non uguali
Come risolvere il problema: Errore in stripchart.default(x1, …): metodo di stampa non valido
Come risolvere: errore in eval (predvars, data, env): oggetto ‘x’ non trovato

Aggiungi un commento

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