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

如何基于纵向数据抽样结果拆分R语言学生考试数据集?

解决方案

可以通过关联数据集+条件过滤的方式简洁实现需求,无需复杂的JOIN组合,具体步骤如下:

步骤1:关联原数据集与抽样学生的最大考试次数

先将原数据集my_data和抽样得到的max_value通过student_id关联,为每个学生的每一行数据添加上对应的最大考试次数:

# 仅保留抽样到的学生数据,用inner_join更精准
combined_data <- my_data %>%
  inner_join(max_value, by = "student_id")

步骤2:拆分出两个目标数据集

基于关联后的数据集,直接通过过滤条件拆分:

  • data_after:筛选exam_number大于对应最大考试次数的行
  • data_before:筛选exam_number小于等于对应最大考试次数的行
# 创建data_after
data_after <- combined_data %>%
  filter(exam_number > max) %>%
  select(-max)  # 移除临时添加的max列

# 创建data_before
data_before <- combined_data %>%
  filter(exam_number <= max) %>%
  select(-max)

补充说明

  • 使用inner_join而非left_join是为了确保只处理抽样到的学生,避免原数据中未被抽样的学生混入结果
  • 如果抽样得到的max是该学生在random_sample中的最大考试次数(而非原数据集的全局最大),上述代码依然能准确匹配条件拆分数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:15:36