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