【问题标题】:Missing category to be shown at bottom缺少的类别显示在底部
【发布时间】:2020-02-20 09:32:43
【问题描述】:

我希望在 groupby 之后的结果底部显示“缺失”类别。 x 列中可以有任何字符值。请参阅下面的示例。

library(dplyr)
df <- data.frame(x = c('Ap','LA','MN', 'Missing','ZA'),
                 y = c('PA','NA','DN', 'Missing','ZD'),
                 z = 1:5,
                 stringsAsFactors = F)

df %>% group_by(x) %>% summarise(x1 = sum(z))

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    使用dplyr::arrange的灵魂:

    df %>% group_by(x) %>%
      summarise(x1 = sum(z)) %>%
      arrange(x == "Missing", x)
    

    返回:

    # A tibble: 5 x 2
      x          x1
      <chr>   <int>
    1 Ap          1
    2 LA          2
    3 MN          3
    4 ZA          5
    5 Missing     4
    

    【讨论】:

      【解决方案2】:

      您可以调整因子水平,最后保持“缺失”。

      librrary(dplyr)
      
      levels <- c(setdiff(unique(df$x), 'Missing'), 'Missing')
      
      df %>% 
        mutate(x = factor(x, levels = levels)) %>%
        group_by(x) %>% 
        summarise(x1 = sum(z))
      
      # A tibble: 5 x 2
      #  x          x1
      #  <fct>   <int>
      #1 Ap          1
      #2 LA          2
      #3 MN          3
      #4 ZA          5
      #5 Missing     4
      

      【讨论】:

      • 非常感谢。可以对dataframe中的所有字符变量进行修改吗?
      • 是否也包含其他列?
      • 对于所有字符变量 - 级别 % mutate(x = factor(x, levels =水平)
      • @UjjawalBhandari 我不确定我是否遗漏了什么,但这已经适用于所有字符变量。
      猜你喜欢
      • 2016-12-14
      • 1970-01-01
      • 2017-03-21
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2020-12-11
      • 1970-01-01
      相关资源
      最近更新 更多