Як виправити помилку: "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» не знайдено

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *