Удалите категориальную переменную из плотности/гистограммы ggplot

#r #ggplot2

#r #ggplot2

Вопрос:

У меня есть переменная с 3 значениями: Мужчина, Женщина, Неизвестно. Для многих частей анализа мне нужно сохранить неизвестное, но я хочу сделать плотность/гистограмму, сравнивающую некоторые результаты БЕЗ неизвестного. Что еще мне нужно добавить, чтобы удалить одно из значений?

Мои данные выглядят так:

Описание пола SATCompositeSuper
Женский 730
Женский 780
Мужской 800
Женский 1000
Женский 1110
Женский NA
Мужской 1050
Мужской 950
Неизвестный 900
Мужской 780

Синтаксис:

 # Color by groups- gender  master_df %gt;%  drop_na() %gt;%  library(ggplot2)  ggplot(master_df, aes(x=SATCompositeSuper, na.rm=TRUE, color=GenderDescription,   fill=GenderDescription))     geom_histogram(aes(y=..density..), alpha=0.5, position="identity")   geom_density(alpha=.2)   

Выход по току (потому что я не думал о неизвестном) — это: введите описание изображения здесь

Комментарии:

1. Попробуйте заменить master_df на filter(master_df, GenderDescription != "Unknown) как объект данных для функции ggplot.

Ответ №1:

Ваш пример не создает сюжет, который вы показали в своем посте, однако я могу придумать два способа отфильтровать неизвестное

Во-первых, вы можете отфильтровать данные, прежде чем строить их

 library(dplyr)  library(tidyverse)  master_df lt;- master_df %gt;%  drop_na() %gt;%  filter(GenderDescription != "Unknown")    ggplot(master_df, aes(x=SATCompositeSuper, na.rm=TRUE, color=GenderDescription, fill=GenderDescription))     geom_histogram(aes(y=..density..), alpha=0.5, position="identity")    geom_density(alpha=.2)   

И второе-отфильтровать данные по мере построения графика

 ggplot(data=master_df[!master_df$GenderDescription %in% c("Unknown"),], aes(x=SATCompositeSuper, na.rm=TRUE, color=GenderDescription, fill=GenderDescription))     geom_histogram(aes(y=..density..), alpha=0.5, position="identity")    geom_density(alpha=.2)   

Комментарии:

1. Вы имеете в виду, что мой график не похож на данные, которые я опубликовал? Я пытаюсь убедиться, что не упустил чего-то еще. Я не опубликовал все данные, потому что в них 14 тысяч строк, поэтому я надеялся, что идея с данными имеет смысл. Не лучше ли мне выложить все это, когда я спрошу? Все еще новичок здесь, поэтому хочу помочь тем, кого я прошу о помощи, лучше понять…или уловить более серьезные проблемы, потому что на данный момент это вполне возможно.

2. Я бы просто сказал, что это не полный набор данных. Кроме того, вы можете попытаться привести пример, который несколько похож на реальные данные. Полученный график из данных примера просто не похож на график, который вы опубликовали в своем вопросе, поэтому я начал сомневаться в своем ответе

3. У меня есть второй фильтр, который отлично работает. Первый каким-то образом включает в себя неизвестное до сих пор, поэтому я пока пойду по второму маршруту. Ошибка в первом случае может быть ошибкой пользователя с моей стороны. Большое спасибо за помощь!!

4. @KathyGodwin Я не добавил требуемую библиотеку для первого фильтра. Может быть, это поможет. Если мой ответ ответил на ваш вопрос, не стесняйтесь голосовать, примите ответ