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

数据预处理需求:移除单条观测ID并补全重复观测至至少5条

R数据预处理:移除单条观测ID并补全重复测量至至少5条

需求说明

  • 移除仅包含1条观测的ID(如原数据中的0101)
  • 对剩余ID,若观测条数不足5条,重复现有观测值直至总条数≥5

原数据

df <- structure(list(id = c("0101", "0102", "0102", "0103", "0103", "0103", "0104", "0104", "0104", "0104", "0104", "0105", "0105", "0105", "0105", "0105", "0106", "0106", "0106", "0106", "0106", "0107", "0107", "0107", "0107", "0107", "0108", "0108", "0108", "0108"), date = c("10/01/91", "12/03/91", "05/05/92", "06/22/92", "12/17/92", "07/14/93", "07/28/92", "01/14/93", "08/11/93", "02/03/94", "08/23/94", "09/24/92", "03/05/93", "10/18/93", "04/14/94", "05/31/94", "01/13/93", "07/27/93", "03/10/94", "09/01/94", "03/09/95", "01/15/93", "07/23/93", "02/07/94", "07/28/94", "02/07/95", "03/19/93", "10/04/93", "05/17/94", "11/15/94"), y = c(0, 0, 9, 0, -11, -11, 0, 10, 9, 4, 5, 0, -7, -17, -13, -17, 0, 6, 6, 1, 3, 0, -9, -13, -18, -17, 0, -8, -8, -10)), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L), class = "data.frame")

解决方案代码(使用dplyr)

library(dplyr)

processed_df <- df %>%
  # 第一步:移除仅含1条观测的ID
  group_by(id) %>%
  filter(n() > 1) %>%
  # 第二步:补全观测至至少5条
  group_modify(function(.x, .y) {
    current_rows <- nrow(.x)
    if (current_rows >= 5) {
      return(.x)
    } else {
      # 计算重复次数,循环复制组内数据直到行数≥5
      repeat_times <- ceiling((5 - current_rows) / current_rows)
      full_data <- bind_rows(rep(list(.x), times = repeat_times + 1))
      # 取前5条确保总条数刚好为5
      return(full_data[1:5, ])
    }
  }) %>%
  ungroup()

代码解释

  1. 过滤单条观测ID:通过group_by(id)分组后,用filter(n()>1)直接剔除只有1条记录的分组(如0101)。
  2. 补全观测条数:
    • 对每个分组,先判断当前行数是否≥5,满足则直接保留
    • 若不足5条,计算需要重复的次数,循环复制组内数据,最后取前5条确保总条数刚好为5
    • 示例:原0102有2条观测,会重复2次(2+2+1=5);0103有3条,重复1次后取前5条(3+2=5)

处理后结果预览

以0102为例,处理后的数据为:

# A tibble: 5 × 3
  id    date      y
  <chr> <chr> <dbl>
1 0102  12/03/91     0
2 0102  05/05/92     9
3 0102  12/03/91     0
4 0102  05/05/92     9
5 0102  12/03/91     0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:59:58