Як виправити помилку: "data" має бути фреймом даних або іншим об'єктом, який можна примусити за допомогою "fortify()", а не числовим вектором
Помилка, з якою ви можете зіткнутися в R:
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a digital vector
Ця помилка виникає, коли ви намагаєтеся використати ggplot2 для побудови графіка змінних у кадрі даних, але посилаєтеся на вектор замість кадру даних для аргументу даних .
Цей посібник пояснює, як саме виправити цю помилку.
Як відтворити помилку
Припустимо, що ми маємо наступний кадр даних у 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
Тепер припустімо, що ми намагаємося створити діаграму розсіювання для візуалізації змінних x і y у кадрі даних:
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
Ми отримуємо помилку, оскільки ми посилаємося на числовий вектор ( df$x ) в аргументі даних функції ggplot() замість кадру даних.
Як виправити помилку
Спосіб виправлення цієї помилки полягає в посиланні на кадр даних для аргументу даних у функції ggplot() .
У нашому прикладі ми повинні використовувати df замість df$x для аргументу даних :
library (ggplot2)
#create scatterplot
ggplot(df, aes(x=x, y=y)) +
geom_point()
Зауважте, що цього разу нам вдалося створити хмару точок без будь-яких помилок.
Додаткові ресурси
У наступних посібниках пояснюється, як вирішити інші поширені помилки в R:
Як виправити: ggplot2 не знає, як обробляти нерівні дані класу
Як виправити: Помилка у stripchart.default(x1, …): Недійсний метод побудови
Як виправити: помилка в eval (predvars, data, env): об’єкт «x» не знайдено