首页 > 解决方案 > 如何编写此 R 计数查询?

问题描述

对于以下数据集,我想要给定列下的高、高于正常、正常的计数

在此处输入图像描述

我想要这样的输出

在此处输入图像描述

标签: r

解决方案


尝试这个:

首先创建一个与您的相似的虚拟数据集:

library(dplyr)
dat <- tibble::tribble(
          ~AL.01,         ~AL.02,         ~AL.03,
  "Above Normal", "Above Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",         "High",
        "Normal",       "Normal",         "High",
        "Normal",       "Normal", "Above Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
  "Above Normal",         "High", "Above Normal",
  "Above Normal",       "Normal", "Above Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "Normal",       "Normal",       "Normal",
        "High",       "Normal",       "Normal"
  )

现在执行以下计数和重命名操作:

AL.01 <- dat %>% 
  count(AL.01) %>% 
  rename(metric = AL.01, AL.01 = n)
AL.02 <- dat %>% 
  count(AL.02) %>% 
  rename(metric = AL.02, AL.02 = n)
AL.03 <- dat %>% 
  count(AL.03) %>% 
  rename(metric = AL.03, AL.03 = n)

final <- full_join(AL.01, AL.02) %>% full_join(AL.03)


final

data.framefinal应如下所示:

# A tibble: 3 x 4
  metric       AL.01 AL.02 AL.03
  <chr>        <int> <int> <int>
1 Above Normal     3     1     3
2 High             1     1     2
3 Normal          19    21    18

推荐阅读