Как исправить ошибку: `data` должен быть фреймом данных или другим объектом, который можно преобразовать с помощью `fortify()`, а не числовым вектором

Как исправить ошибку: `data` должен быть фреймом данных или другим объектом, который можно преобразовать с помощью `fortify()`, а не числовым вектором

Одна ошибка, с которой вы можете столкнуться в R:

Error: `data` must be a data frame, or other object coercible by `fortify()`,
 not a numeric 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

 x y
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 numeric vector

Мы получаем ошибку, потому что мы ссылались на числовой вектор ( df$x ) в аргументе данных функции ggplot() вместо фрейма данных.

Как исправить ошибку

Способ исправить эту ошибку — сослаться на фрейм данных для аргумента данных в функции ggplot() .

В нашем примере мы должны использовать df вместо df$x для аргумента данных :

library (ggplot2)

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

Обратите внимание, что на этот раз мы смогли успешно создать точечную диаграмму без каких-либо ошибок.

Дополнительные ресурсы

В следующих руководствах объясняется, как устранять другие распространенные ошибки в R:

Как исправить: ggplot2 не знает, что делать с данными класса uneval
Как исправить: ошибка в stripchart.default(x1, …): неверный метод построения графика
Как исправить: ошибка в eval(predvars, data, env): объект 'x' не найден

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.