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

如何用dplyr按ID统计去重且排除NA的域名数量?

R dplyr解决方案

通过以下步骤可以快速实现按ID聚合并统计唯一域名数量(排除"na"值):

  1. 过滤掉域名值为"na"的行
  2. 按id分组
  3. 统计每组内的唯一域名数量
# 加载dplyr包
library(dplyr)

# 构造样例数据
sample_data <- tibble(
  id = c(1,1,1,1,1,2,2,2,3,3,3,3),
  domain = c("ca", "ca", "com", "na", "com", "org", "na", "ca", "org", "ca", "com", "net")
)

# 计算结果
result <- sample_data %>%
  filter(domain != "na") %>%
  group_by(id) %>%
  summarise(count_domain = n_distinct(domain))

# 输出结果
print(result)

运行后会得到与期望一致的输出,该方法支持大规模数据处理,无需手动判断。

Excel解决方案

如果更习惯用Excel处理,有两种高效方法:

方法1:数据透视表法

  • 选中包含表头的所有数据区域
  • 点击「插入」→「数据透视表」,选择合适的放置位置
  • 在数据透视表字段面板中:
    • 将id拖至「行」区域
    • 将domain拖至「值」区域
    • 点击值区域的domain→「值字段设置」,选择「非重复计数」
    • 点击数据透视表中domain的下拉菜单,取消勾选「na」后确定

方法2:公式法

  1. 在空白列(如D列)输入=UNIQUE(A2:A13),提取所有不重复的id
  2. 在D列对应行的右侧(如E2)输入公式:
    =SUMPRODUCT((A$2:A$13=D2)*(B$2:B$13<>"na")/COUNTIFS(A$2:A$13,A$2:A$13,B$2:B$13,B$2:B$13))
    
  3. 下拉填充公式至所有id行,即可得到统计结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:45:35