【问题标题】:Count the na values per group [duplicate]计算每组的 na 值[重复]
【发布时间】:2020-12-20 23:56:55
【问题描述】:

在输入数据结构中

data.frame(group = c(1,1,1,2,2,3), number = c(10,NA,10,5,NA,1))

如何计算每个组号存在多少个 NA(缺失)值?

示例输出

group count
1      1
2      1
3      0

【问题讨论】:

  • 在发布有关“如何按组获取 x?”的许多变体之前,请先搜索一下。 - 这类问题以前通常已经讨论过。

标签: r


【解决方案1】:

我们可以按组获取逻辑表达式的sum,即is.na(number)返回TRUE,其中NAFALSE表示非NA。然后得到TRUE(TRUE -> 1 and FALSE -> 0)的sum

library(dplyr)
df1 %>% 
    group_by(group) %>% 
    summarise(count = sum(is.na(number)), .groups = 'drop')

或使用aggregate 来自base R

aggregate(count ~ group, transform(df1, count = is.na(number)), sum)

数据

df1 <- data.frame(group = c(1,1,1,2,2,3), number = c(10,NA,10,5,NA,1))

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2019-08-19
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多