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

使用R语言验证数据集各参与者的测试数量与指定测试项完整性

解决方案

修正后的代码实现

# 指定需要验证的Test_ID集合
test_ID <- c("2125", "2167", "2145", "2189", "2143")

# 按参与者分组执行两项检查
check_result <- dat %>%
  group_by(Participant_ID) %>%  # 修正拼写错误:原代码的Paticipant_ID少了字母r
  summarize(
    # 检查1:测试记录数是否≥35
    record_count_ok = n() >= 35,
    # 检查2:是否包含所有指定的Test_ID
    test_id_set_ok = all(test_ID %in% Test_ID),
    # 可选:生成综合检查结果(两项都达标则为TRUE)
    overall_ok = record_count_ok & test_id_set_ok
  )

代码说明

  • 分组处理:通过group_by(Participant_ID)确保每个参与者的记录单独处理
  • 记录数检查:n()统计每组的记录条数,直接判断是否满足≥35的要求
  • Test_ID集合验证:all(test_ID %in% Test_ID)确保指定集合中的每一个Test_ID都存在于当前参与者的测试记录中,避免遗漏任何一项
  • 综合结果:overall_ok字段直接返回两项检查都通过的最终判断

原代码问题说明

  1. 拼写错误:Paticipant_ID应为Participant_ID,导致分组逻辑失效
  2. 分组后未使用summarize/mutate处理组内数据,原代码的test_ID %in% as.matrix(dat$Test_ID)是全局检查,而非按参与者分组检查
  3. 缺少all()函数,无法验证指定Test_ID集合的完整性,仅会返回单个布尔值而非每组的检查结果
  4. as.matrix属于冗余操作,直接使用Test_ID列即可完成检查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:05:59