使用ggplot2删除R中的不相关级别

时间:2018-06-18 21:14:12

标签: r ggplot2

我试图制作一个按性别划分的权重直方图。不幸的是,一些参与者并不知道性别,但我确实对他们有分量。这导致了使用的级别,但与我无关,不幸的是我似乎无法弄清楚如何制作它以便不显示NA直方图。

这是我的代码:

KYHH %>%
 ggplot(aes(x = Weight)) +
 geom_histogram() +
 facet_grid(~ Gender, drop = TRUE) +
 ggtitle("Weight by Gender")

你能帮忙吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

凯莉,如果你没有提供可重复的例子,很难帮助你。 然而,根据您的描述,您可以尝试使用性别变量中的NA来过滤观察结果。

 library(dplyr)
 KYHH %>% filter(!is.na(Gender)) %>%
         ggplot(aes(x = Weight)) +
         geom_histogram() +
         facet_grid(~ Gender, drop = TRUE) +
         ggtitle("Weight by Gender")

答案 1 :(得分:0)

另一种替代解决方案可以是drop=TRUE

# create a factor variable with several levels
occupation<- factor(c("astronaut","baker","cobbler","driver",
                      "engineer","fisherman","gambler"))
occupation
[1] astronaut baker     cobbler   driver    engineer  fisherman gambler  
Levels: astronaut baker cobbler driver engineer fisherman gambler

# drop the last 3 levels
df<-occupation[1:4, drop=TRUE]
df
[1] astronaut baker     cobbler   driver   
Levels: astronaut baker cobbler driver
# drop levels 1,4,7
df1<- occupation[c(2:3,5:6), drop=TRUE]
df1
[1] baker     cobbler   engineer  fisherman
Levels: baker cobbler engineer fisherman