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

R语言查找scale多唯一值对应的study_id(base/dplyr实现)

需求说明

在R中对给定数据集DATA完成筛选:按study_id字段分组,筛选出组内scale字段唯一取值个数大于1的study_id。

校验说明:正确返回结果为Li,该研究下scale同时存在Other和MBTI两类取值。

测试数据集加载

先运行以下代码生成测试用的DATA对象:

m="
study_id   year es_id       r     se     n pub_type  context  ed_setting  age_grp L1    L2    prof  scale outcome
Dreyer     1992   130  0      0.0574   305 DocDisse~ Foreign~ CollegeUni~ Adult   Afri~ Engl~ NA    Other Listen~
Dreyer     1992   131  0.04   0.0574   305 DocDisse~ Foreign~ CollegeUni~ Adult   Afri~ Engl~ NA    Other Writing
Dreyer     1992   132 -0.03   0.0574   305 DocDisse~ Foreign~ CollegeUni~ Adult   Afri~ Engl~ NA    Other Reading
Dreyer     1992   133  0      0.0574   305 DocDisse~ Foreign~ CollegeUni~ Adult   Afri~ Engl~ NA    Other Overall
Ghapanchi  2011    89  0.31   0.0806   141 JournalA~ Foreign~ CollegeUni~ Adult   Pers~ Engl~ NA    Other Overall
Hassan     2001   177  0.25   0.117     71 NA        Foreign~ CollegeUni~ NA      Arab~ Engl~ NA    Other Speaki~
Kralova    2012   137  0.0252 0.117     75 JournalA~ Foreign~ CollegeUni~ Adult   Slov~ Engl~ Inte~ Other Speaki~
Li         2009    55 -0.04   0.132     59 JournalA~ Foreign~ CollegeUni~ Adult   Chin~ Engl~ NA    Other Grammar
Li         2009    56  0.355  0.124     59 JournalA~ Foreign~ CollegeUni~ Adult   Chin~ Engl~ NA    Other Pragma~
Li         2003    57  0.039  0.0735   187 JournalA~ Foreign~ CollegeUni~ Multip~ Chin~ Engl~ NA    MBTI  Overall
"

DATA <- read.table(text = m, h=T)

代码实现

dplyr版本

library(dplyr)

DATA %>%
  group_by(study_id) %>%
  summarise(unique_scale_cnt = n_distinct(scale), .groups = "drop") %>%
  filter(unique_scale_cnt > 1) %>%
  pull(study_id)

运行输出:

[1] "Li"

Base R版本

# 分组统计每个study_id下scale的唯一值数量
agg_res <- aggregate(scale ~ study_id, data = DATA, FUN = function(x) length(unique(x)))
# 筛选符合条件的结果
agg_res[agg_res$scale > 1, "study_id"]

运行输出:

[1] "Li"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:06:23