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

如何快速判断R语言分组内成员的Choice是否一致?

简洁高效的实现方案

基于tidyverse生态的dplyr包,我们可以快速实现需求,两种常用方案如下:

方案一:基于唯一值数量判断

先加载依赖包(未安装的话先运行install.packages(c("tibble", "dplyr"))):

library(tibble)
library(dplyr)

# 设置随机种子保证结果可复现
set.seed(123)
df <- tibble(ID = c(1:12),
             Group = c(rep(1,3), rep(2,3), rep(3,3), rep(4,3)),
             Choice = c( rep(1.5, 3), round(rnorm(n=9,mean=10,sd=5), digits = 1) )
             )

# 添加Symmetric列
df <- df %>%
  group_by(Group) %>%
  mutate(Symmetric = as.integer(n_distinct(Choice) == 1)) %>%
  ungroup()

核心逻辑:

  • 按Group分组后,用n_distinct(Choice)统计组内Choice的唯一值个数
  • 判断唯一值个数是否为1,将布尔结果转为整数(TRUE→1,FALSE→0)

方案二:基于组内值一致性判断

如果更关注组内所有值是否和第一个值完全一致,可使用此方案:

df <- df %>%
  group_by(Group) %>%
  mutate(Symmetric = as.integer(all(Choice == first(Choice)))) %>%
  ungroup()

核心逻辑:

  • 检查组内每一个Choice是否等于组内第一个Choice
  • 用all()确认所有元素都满足条件,再转为整数标记

两种方案都能高效完成需求,数据量较大时两者性能差异可忽略,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:52:04