Как исправить: ggplot2 не знает, как обрабатывать данные неравных классов
Ошибка, с которой вы можете столкнуться в 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): необходимо указать «origin».
Как исправить: Ошибка в Stripchart.default(x1,…): Неверный метод построения графиков.
Как исправить: ошибка в eval (predvars, data, env): объект «x» не найден