如何使用dplyr友好的方法对数据框中指定研究的受试者ID子集进行掩码?
实现方案
以下提供两种常用实现方式,均可以保留Study 2受试者原有顺序,且不改动其他研究的ID:
1. tidyverse 方案(适合已加载tidyverse生态包的场景)
library(tidyverse) df_mask <- df %>% mutate(ID = case_when( str_starts(ID, "STUDY2") ~ paste0("STUDY2_MASK", row_number(str_starts(ID, "STUDY2"))), TRUE ~ ID ))
2. 基础R方案(无需额外依赖,运行更快)
# 提取Study2所有行的索引(按原有顺序排列) study2_rows <- grep("^STUDY2", df$ID) # 批量替换为掩码ID df$ID[study2_rows] <- paste0("STUDY2_MASK", seq_along(study2_rows))
两种方案运行后得到的结果都和预期输出完全一致。
内容的提问来源于stack exchange,提问作者jsgraydon
相关产品推荐
相关产品推荐

