#r #plot #ggplot2
#r #график #ggplot2
Вопрос:
У меня очень простой набор данных, и я пытаюсь составить очень простой график, но я получаю ошибку object not found, и я не могу определить, почему. Вот результат head (технические выпуски)
Event.Start.Date Were.you.able.to.see..hear.and.follow.the.presentation...
1 2011-09-29 Yes
11 2011-09-19 Yes
17 2011-09-19 Yes
20 2011-08-30 No
26 2011-09-29 Yes
27 2011-09-29 Yes
Вот код графика:
qplot(factor(techissues$Event.Start.Date), fill=as.character(techissues$Were.you.able.to.see..hear.and.follow.the.presentation...))
Я ожидаю гистограмму со строками дат вдоль x и столбчатую полосу, показывающую количество Да и Нет для каждой даты. Я могу создать точно такой тип графика для других наборов данных, и я не понимаю, чем этот отличается.
Ошибка Error in eval(expr, envir, enclos) : object 'techissues' not found
summary(techissues)
Event.Start.Date Were.you.able.to.see..hear.and.follow.the.presentation...
Length:188 Length:188
Class :character Class :character
Mode :character Mode :character
Вот и все. Что здесь происходит?
Комментарии:
1. Когда я опубликовал этот вопрос, я заметил, что подсветка синтаксиса
.and.
в сводном выводе окрашена по-разному. Я изменил имя столбца с этой длинной строки наsee.and.hear
и это работает, поэтому я не знаю, что произошло. Кстати, длинные неудобные имена столбцов были не моей работой, я просто работаю с тем, что мне дали. Теперь это побудило меня переименовать столбцы в рамках обширной очистки данных, которую я уже должен выполнить!
Ответ №1:
ggplot
и qplot
ожидайте, что вы предоставите data.frame
data=
аргумент a и укажете эстетическое отображение в этом фрейме, т. Е. Вы, как правило, никогда не должны использовать $
:
qplot(carb, optden, data=Formaldehyde)
не
qplot(Formaldehyde$carb, Formaldehyde$optden)
хотя может показаться, что это работает в некоторых простых ситуациях, в основном это нежелательная функция.
Комментарии:
1. Спасибо, Батист. Это не отвечает на мой вопрос о том, почему это работает в одних случаях и терпит неудачу в других, но указывает на совет.
2. Я предполагаю, что ggplot2 ожидает другого значения для специального шаблона
..xxx..
, как показано нижеd = data.frame(x=1:10, y = 1:10, z.weird..name.. = 1:10); qplot(d$x, d$z.weird..name..)
. Этот шаблон используется для ссылки на переменные, возвращаемые функциями статистики ggplot2, такими как..counts..
, и т.д. Моим советом было бы использовать более стандартные имена.3. К сожалению, у меня нет никакого контроля над именами, как указано, но, как я отмечал выше, я уже переименовываю столбцы как часть моей очистки и нормализации, а также оставляю $ из маршрутов aes для решения проблемы. По какой-то причине я думал, что для этого нужно присоединить фрейм данных.