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

在R中按State和Filter分组生成计数表并添加计数列

解决方案

你需要用dplyr的group_by()配合mutate()来实现,tally()会将每组聚合为单行,不符合你保留原数据所有行的需求。具体代码如下:

library(dplyr)

data1 <- data.frame(
  State = c("NJ", "NJ", "PA", "NJ", "TX"),
  Filter = c("Filter", "Filter", "No Filter", "Filter", "Filter"),
  Threshold = c("Exceeds","Exceeds", NA, "NL", "Exceeds")
)

final_data <- data1 %>%
  group_by(State, Filter) %>%
  mutate(
    Count_Exceeds_Threshold = sum(Threshold == "Exceeds", na.rm = TRUE),
    Count_Total = n()
  ) %>%
  ungroup()

# 查看结果
final_data

代码说明

  • group_by(State, Filter):按State和Filter两个字段分组
  • Count_Exceeds_Threshold = sum(Threshold == "Exceeds", na.rm = TRUE):统计每组中Threshold等于"Exceeds"的次数,na.rm = TRUE确保NA值不干扰统计结果
  • Count_Total = n():直接获取每组的总记录数
  • ungroup():取消分组状态,避免后续操作受分组限制

运行后得到的结果和你期望的final_data完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:14:51