Как исправить: ggplot2 не знает, что делать с данными класса uneval

Как исправить: ggplot2 не знает, что делать с данными класса uneval

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

Error: ggplot2 doesn't know how to deal with data of class uneval

Эта ошибка обычно возникает, когда вы пытаетесь использовать ggplot2 для одновременного построения двух фреймов данных, но не можете использовать аргумент данных в функции geom_line() .

В этом руководстве рассказывается, как именно исправить эту ошибку.

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

Предположим, у нас есть два фрейма данных в R, которые показывают количество продаж, совершенных в определенные часы в разные дни:

#create first data frame
df <- data.frame(date=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
 hour=c(1, 2, 3, 1, 2, 3, 1, 2, 3),
 sales=c(2, 5, 7, 5, 8, 12, 10, 14, 13))

#view data frame
head(df)

 date hour sales
1 1 1 2
2 1 2 5
3 1 3 7
4 2 1 5
5 2 2 8
6 2 3 12

#create second data frame
df_new <- data.frame(date=c(4, 4, 4, 5, 5, 5),
 hour=c(1, 2, 3, 1, 2, 3),
 sales=c(12, 13, 19, 15, 18, 20))

#view data frame 
head(df_new)

 date hour sales
1 4 1 12
2 4 2 13
3 4 3 19
4 5 1 15
5 5 2 18
6 5 3 20

Теперь предположим, что мы пытаемся создать линейную диаграмму для визуализации продаж, сгруппированных по дням и часам, используя синий цвет для первого фрейма данных и красный цвет для второго фрейма данных:

library (ggplot2)

#attempt to create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
 geom_line(color='blue') +
 geom_line(df_new, aes(x=hour, y=sales, group=date), color='red')

Error: ggplot2 doesn't know how to deal with data of class uneval

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

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

Чтобы исправить эту ошибку, просто введите данные во втором аргументе geom_line() , чтобы R знал, какой фрейм данных мы пытаемся построить.

library (ggplot2)

#create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
 geom_line(color='blue') +
 geom_line(data=df_new, aes(x=hour, y=sales, group=date), color='red') 

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

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

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

Как исправить в R: ошибка в as.Date.numeric(x): необходимо указать «происхождение»
Как исправить: ошибка в stripchart.default(x1, …): неверный метод построения графика
Как исправить: ошибка в eval(predvars, data, env): объект 'x' не найден

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