在R中验证proposed_id是否唯一关联单个actual_id
解决方案
针对你的需求,这里提供两种高效的R语言实现方式,适配9万行的数据集规模:
方法1:Base R 实现
利用ave()函数按proposed_id分组,判断每组内唯一actual_id的数量是否为1:
df$assessment <- ave(df$actual_id, df$proposed_id, FUN = function(x) length(unique(x)) == 1)
方法2:tidyverse/dplyr 实现
如果习惯使用tidyverse生态,dplyr的分组操作更直观,且处理大数据效率优秀:
library(dplyr) df <- df %>% group_by(proposed_id) %>% mutate(assessment = n_distinct(actual_id) == 1) %>% ungroup()
验证结果
运行上述任意代码后,数据集会新增assessment列,结果如下:
| actual_id | number | proposed_id | assessment |
|---|---|---|---|
| 1 | 2 | a | TRUE |
| 1 | 2 | a | TRUE |
| 2 | 3 | b | FALSE |
| 2 | 3 | b | FALSE |
| 2 | 3 | c | TRUE |
| 3 | 2 | d | TRUE |
| 3 | 2 | b | FALSE |
说明
- 两种方法都会对每个
proposed_id组进行判断:当组内唯一actual_id的数量为1时标记TRUE,否则标记FALSE - 对于9万行的数据,两种方法都能高效处理,
dplyr的分组优化更适配大规模数据集场景
内容的提问来源于stack exchange,提问作者fe108
相关产品推荐
相关产品推荐

