Почему я получаю объект, не найденный с помощью этого простого графика ggplot?

#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 для решения проблемы. По какой-то причине я думал, что для этого нужно присоединить фрейм данных.