r - 计算 r 中的有效行数

标签 r count

我有一些行计数练习NA

这是一个包含 catid 变量的示例数据集。

df <- data.frame(cat=c("A","A","A","B","B","C","C","C","C"),
                 id = c(11,12,13,NA,NA,21,21,23,24))

> df
  cat id
1   A 11
2   A 12
3   A 13
4   B NA
5   B NA
6   C 21
7   C 21
8   C 23
9   C 24

我想统计按 cat 分组的观察次数。

我试过了,但它也计算了 B 类的 NA

df.1 <- df %>% 
  group_by(cat) %>%
  dplyr::summarise(freq=n())

> df.1
# A tibble: 3 x 2
  cat    freq
  <fct> <int>
1 A         3
2 B         2
3 C         4

我怎样才能不计算 NA 并简单地在该单元格中分配 NA,如下所示?

   > df.1
    # A tibble: 3 x 2
      cat    freq
      <fct> <int>
    1 A         3
    2 B         NA
    3 C         4

最佳答案

在逻辑向量(!is.na(id)complete.cases(id))上使用 sum 并替换 0使用 na_if

计入 NA
library(dplyr)
df %>% 
 group_by(cat) %>% 
 summarise(freq = na_if(sum(!is.na(id)), 0))

-输出

# A tibble: 3 × 2
  cat    freq
  <chr> <int>
1 A         3
2 B        NA
3 C         4

关于r - 计算 r 中的有效行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70840828/

相关文章:

MYSQL IF SELECT COUNT() 大于零 select * from table else return nothing found

php - 如何使用 INSERT AND COUNT 创建 SQL 命令

oracle - 需要使用 sql developer 在 oracle db 上按日期计算记录和组计数

正则表达式从最后一个下划线出现到第 n 个下划线(从后面)的子字符串

regex - R 正则表达式 : issues with character vectors containing NAs

r - 将 knitr Chunk 代码和输出拆分为两个不同的 knitrout

c# - 以下两个语句有什么区别?

php - 计算从 PHP `mysql_query` 函数返回的行数的可靠方法是什么?

R如何在列表中找到向量子集的交集

r - grep 的优化版本以将向量与向量匹配