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

在R中实现按Account role分组统计非NULL值数量的方法

R实现按角色分组统计非空值总数

前提说明

原数据表中的NULL对应R中的缺失值标识NA,导入数据时需要先将NULL转换为NA再进行统计。

第一步:构造示例数据

df <- data.frame(
  `Account role` = c("Manager", "Administrator", "User", "User", "Manager"),
  `Created date` = as.Date(c("2021-01-01", "2021-01-12", "2021-01-21", "2021-02-12", "2021-02-15")),
  `Deleted date` = as.Date(c("2021-04-05", NA, NA, "2021-05-12", NA)),
  check.names = FALSE
)

实现方法

方法1:使用dplyr包(推荐,tidyverse生态常用)

如果未安装dplyr先执行install.packages("dplyr")安装。

library(dplyr)

# 统计范围:Created date、Deleted date两个字段的非空值总数量
result <- df %>%
  group_by(`Account role`) %>%
  summarise(non_null_total = sum(!is.na(across(c(`Created date`, `Deleted date`)))))

# 如果需要统计包括Account role在内的所有字段非空值,把across的参数改成everything()即可

运行后得到的结果如下:

Account rolenon_null_total
Administrator1
Manager3
User3

统计逻辑验证:

  • Administrator仅1条记录:Created date非空、Deleted date空,合计1个非空值
  • Manager共2条记录:第一条两个日期都非空(2个)、第二条仅Created date非空(1个),合计3个非空值
  • User共2条记录:第一条仅Created date非空(1个)、第二条两个日期都非空(2个),合计3个非空值

方法2:基础R实现(无需安装额外包)

# 先计算每行两个日期字段的非空值数量
df$row_non_null <- rowSums(!is.na(df[, c("Created date", "Deleted date")]))
# 按Account role分组求和
result <- aggregate(row_non_null ~ `Account role`, data = df, FUN = sum)

两种方法得到的统计结果完全一致。

内容的提问来源于stack exchange,提问作者Саят Оразов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:54:03