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

在R中为存在多次测量的参与者保留首次体重测量值

在R中保留每位参与者每日的首次体重观测

你有一份纵向数据集,每个参与者同一天存在多条体重测量记录,目标是保留每个ID+日期组合的第一条观测。以下是具体实现方法:

示例数据

先构造你提供的示例数据集:

df <- data.frame(
  ID = c(1, 1, 1, 2, 2, 2),
  Date = c("2/1", "2/1", "2/1", "2/1", "2/1", "2/1"),
  Weight = c(160, 159, 160.5, 200, 198, 201)
)

方法1:基础R实现

利用ave()函数按ID和Date分组,筛选出每组的第一行:

# 筛选每组第一条记录
df_first <- df[ave(seq(nrow(df)), df$ID, df$Date, FUN = function(x) x == min(x)), ]

方法2:tidyverse(dplyr)实现

如果习惯tidyverse语法,用分组+取首行的方式更直观:

library(dplyr)

# 分组后保留每组第一条
df_first <- df %>%
  group_by(ID, Date) %>%
  slice_head(n = 1) %>%  # 或用 slice(1) 效果一致
  ungroup()

最终结果

运行上述代码后,得到的数据集如下:

print(df_first)
#   ID Date Weight
# 1  1  2/1    160
# 2  2  2/1    200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:55:39