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

按决策组匹配特定选民投票结果的R语言高效实现问题

求助:50万+观测值的高效投票一致性判断方案

我手头有个记录选民投票情况的数据集,具体结构和生成代码如下:

d <- c(1,1,1,1,2,2,2,2,3,3,3,4,4,4,4) 
v <- c(6,7,8,9,6,7,8,9,6,7,9,6,7,8,9) 
r <- c("y","y","n","n","n","n","n","n","y","y","y","y","y","a","y") 
df <- data.frame(d,v,r)

这里要说明的是,部分选民并没有参与全部决策的投票——注意这和数据里已经记录的弃权票是完全不同的情况哦。

我的核心需求是:按决策d分组,判断每个选民的投票结果是否和特定选民v==8的投票一致。

最开始我用dplyr写了常规的处理代码:

df %>% group_by(d) %>% mutate(like8 = ifelse(r == r[v == 8], 1, 0))

但问题来了:v==8并不是在所有决策d里都有投票记录,执行这段代码直接抛出错误:

Error in mutate_impl(.data, dots) : Column like8 must be length 3 (the group size) or one, not 0

我自己折腾出了嵌套循环加ifelse的代码来绕开这个问题,但实际数据集有50万+观测值,运行速度慢到离谱,完全没法用。我知道data.table在处理大数据量的时候效率很高,但对它的用法不太熟,有没有大佬能给出适配这个场景的高效解决方案呀?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:48:40