Как правильно использовать переменную в ggplot?

Я нашел проблему, которую я не мог понять. Может кто-нибудь указать объяснение?

В ggplot, если я использую/не использую «$» с именем переменной, это дает другой результат. Пожалуйста, смотрите пример ниже,

library(ggplot2)
df <- read.csv("pseudo_facebook.tsv", sep = '\t')

# Without $ sign
ggplot(data = df, aes(x = friend_count)) + geom_histogram(binwidth = 25) +
  scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
  facet_grid(~df$gender)

Без $ в имени переменной

# With $ sign
ggplot(data = df, aes(x = df$friend_count)) + geom_histogram(binwidth = 25) +
  scale_x_continuous(limits = c(1, 1000), breaks = seq(0, 1000, 25)) + 
  facet_grid(~df$gender)

введите здесь описание изображения


person Droid-Bird    schedule 17.12.2017    source источник
comment
Вы должны предоставить воспроизводимый пример для такого вопроса. Запустите dput(df) и скопируйте вывод в вопрос (при условии, что набор данных не слишком велик).   -  person Michael Harper    schedule 18.12.2017
comment
Короткое объяснение: никогда не используйте $ внутри aes() или в фасете! Просто не делай этого! Это неверно! ;)   -  person joran    schedule 18.12.2017
comment
Привет, это файл, используемый для данных, github.com/staceynlee/Pseudo-Facebook-Data-Udacity/blob/master/   -  person Droid-Bird    schedule 18.12.2017


Ответы (1)


Я не уверен, что это причина вашего поведения, но в первом примере у вас все еще есть df$ в формуле facet_grid. Возможно, возникает какая-то скрытая проблема с оценкой, если вы смешиваете голые имена столбцов сами по себе с именами столбцов, указанными во фрейме данных.

Если вы замените это имя файла в read.csv URL-адресом, у вас будет репрекс, который я могу протестировать ????

person jimjamslam    schedule 17.12.2017
comment
Вот ссылка на источник данных, если вы это имеете в виду? github.com/staceynlee/Pseudo -Facebook-Data-Udacity/blob/master/ - person Droid-Bird; 18.12.2017