如何在R语言中按Product分组统计唯一Patient_ID的数量?
统计每个产品的唯一患者数量(R实现)
可复现数据集
test_data <- data.frame(Product=c("A","A","A","A","D","D","D","E","E","F","G"), Patient_ID=c("1","1","1","3","3","4","5","5","6","7","8"))
方法1:基础R实现
通过aggregate函数分组计算唯一患者数:
result_base <- aggregate(Patient_ID ~ Product, data = test_data, FUN = function(x) length(unique(x))) colnames(result_base)[2] <- "Freq" # 输出结果 result_base
方法2:dplyr包实现(tidyverse风格)
先加载dplyr,通过去重后计数的方式实现:
library(dplyr) result_dplyr <- test_data %>% distinct(Product, Patient_ID) %>% # 保留唯一的产品-患者组合 count(Product, name = "Freq") # 按产品统计数量 # 输出结果 result_dplyr
最终输出结果
两种方法均会得到如下数据集:
Product Freq 1 A 2 2 D 3 3 E 2 4 F 1 5 G 1
内容的提问来源于stack exchange,提问作者sabc04
相关产品推荐
相关产品推荐

