Jak naprawić błąd: „dane” muszą być ramką danych lub innym obiektem możliwym do wymuszenia za pomocą „fortify()”, a nie wektorem numerycznym


Błąd, który możesz napotkać w R to:

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

Ten błąd występuje, gdy próbujesz użyć ggplot2 do wykreślenia zmiennych w ramce danych, ale jako argument danych odwołujesz się do wektora zamiast do ramki danych.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w 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

Załóżmy teraz, że próbujemy utworzyć wykres rozrzutu w celu wizualizacji zmiennych x i y w ramce danych:

 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

Otrzymujemy błąd, ponieważ odwołaliśmy się do wektora numerycznego ( df$x ) w argumencie danych funkcji ggplot() zamiast do ramki danych.

Jak naprawić błąd

Sposobem naprawienia tego błędu jest odwołanie się do ramki danych dla argumentu danych w funkcji ggplot() .

W naszym przykładzie powinniśmy użyć df zamiast df$x jako argumentu danych :

 library (ggplot2)

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

Należy pamiętać, że tym razem udało nam się pomyślnie utworzyć chmurę punktów bez żadnych błędów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić: ggplot2 nie wie, jak obsługiwać dane nierównych klas
Jak naprawić: Błąd w stripchart.default(x1, …): Nieprawidłowa metoda kreślenia
Jak naprawić: błąd w eval (predvars, data, env): nie znaleziono obiektu „x”.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *