Hoe de fout op te lossen: "data" moet een dataframe of ander object zijn dat kan worden afgedwongen door "fortify()", geen numerieke vector


Een fout die je tegen kunt komen in R is:

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

Deze fout treedt op wanneer u ggplot2 probeert te gebruiken om variabelen in een dataframe te plotten, maar u voor het data- argument verwijst naar een vector in plaats van naar een dataframe.

In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.

Hoe de fout te reproduceren

Stel dat we het volgende dataframe in R hebben:

 #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

Stel nu dat we proberen een spreidingsdiagram te maken om de x- en y-variabelen in het dataframe te visualiseren:

 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

We ontvangen een foutmelding omdat we in het data- argument naar een numerieke vector ( df$x ) verwijzen naar de ggplot()- functie in plaats van naar een dataframe.

Hoe u de fout kunt oplossen

De manier om deze fout op te lossen is door te verwijzen naar een dataframe voor het data- argument in de ggplot()- functie.

In ons voorbeeld moeten we df gebruiken in plaats van df$x voor het data- argument:

 library (ggplot2)

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

Merk op dat we deze keer de puntenwolk met succes en zonder fouten kunnen maken.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Oplossing: ggplot2 weet niet hoe om te gaan met ongelijke klassengegevens
Oplossing: Fout in stripchart.default(x1, …): Ongeldige plotmethode
Hoe op te lossen: fout in eval (predvars, data, env): object ‚x‘ niet gevonden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert