You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用dplyr按组统计各列的NA值总数

按分组统计各列NA值总数的dplyr实现

首先确保你已经安装并加载了dplyr包:

install.packages("dplyr")
library(dplyr)

使用以下代码可以按id分组,统计每个分组下x1和x2列的NA值总数:

# 构造数据框
id <- rep(c("a", "b", "c"), 3)
x1 <- c(1, NA, NA, 2, 2, NA, 0, NA, 0)
x2 <- c(1, 2, 3, NA, 12, NA, NA, 4, NA)
df <- cbind.data.frame(id, x1, x2)

# 分组统计NA数量
result <- df %>%
  group_by(id) %>%
  summarise(across(c(x1, x2), ~sum(is.na(.x)), .names = "{col}"))

# 查看结果
print(result)

代码解释

  • group_by(id):按id字段对数据框进行分组
  • summarise(across(...)):对指定列执行统计操作:
    • c(x1, x2):指定需要统计的数值列
    • ~sum(is.na(.x)):对每一列计算NA值的总数(is.na()将NA转为逻辑值TRUE,sum()统计TRUE的数量即NA的个数)
    • .names = "{col}":保持结果列名与原列名一致

执行后得到的结果数据框包含3行(对应id=a、b、c)和2列(x1、x2),存储每个分组对应列的NA值总和,示例输出如下:

# A tibble: 3 × 3
  id       x1    x2
  <chr> <int> <int>
1 a         1     1
2 b         2     0
3 c         1     2

内容的提问来源于stack exchange,提问作者Muhammad Kamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:21:17