【问题标题】:Drop Irrelevant Levels in R using ggplot2使用 ggplot2 在 R 中删除不相关的级别
【发布时间】:2018-06-18 21:14:11
【问题描述】:

我正在尝试制作按性别划分的权重直方图。不幸的是,一些参与者不知道性别,但我确实为他们准备了权重。这导致使用了级别,但与我无关,不幸的是我似乎无法弄清楚如何制作它,因此未显示 NA 直方图。

这是我的代码:

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

你能帮忙吗?

提前致谢!

【问题讨论】:

  • 欢迎来到 StackOverflow!请提供您的数据reproducible example,以便我/其他人可以使用它

标签: r ggplot2


【解决方案1】:

Kelly,如果您不提供可重现的示例,则很难为您提供帮助。 但是,根据您的描述,您可以尝试在 Gender 变量中使用 NA 过滤观察结果。

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

【讨论】:

    【解决方案2】:

    可以使用另一种替代解决方案,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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      相关资源
      最近更新 更多