Я хочу сделать противоположное этому вопросу и своего рода противоположное этому вопросу , хотя это касается легенд, а не самого сюжета.
Другие вопросы SO, похоже, касаются того, как сохранить неиспользуемые уровни факторов. Я бы вообще хотел, чтобы мой удалили. У меня есть несколько имен переменных и несколько столбцов (широкого формата )атрибутов переменных, которые я использую для создания многочисленных гистограмм. Вот воспроизводимый пример:
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
Я понимаю:
Я бы хотел, чтобы на моем гистограмме (отображались только те имена, которые имеют соответствующие var n , так как для B )не было бы пустого места.
Повторное использование кода базового графика будет довольно простым, если я просто изменю имя выходного файла и бит y=var
. Я бы не хотел подмножать свой фрейм данных только для того, чтобы использовать уровни отбрасывания для результата для каждого графика, если это возможно!
Обновление на основе предложения na.omit()
Рассмотрим пересмотренный набор данных:
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5), var3=c(NA,6,7))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
Мне нужно использовать na.omit()
для построения графика var1
, потому что присутствует NA. Но поскольку na.omit гарантирует наличие значений для всех столбцов , график также удаляет A
, так как он имеет NA в var3
. Это больше похоже на мои данные. Всего у меня 15 ответов с АН. Я хочу удалить только уровни факторов, которые не имеют значений для текущего нанесенного на график вектора y, а не те, которые имеют NA в любом векторе во всем фрейме данных.