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

如何在R中移除Gest值≤GA的对应Gest、Sys、Dia变量

解决方案

1. 提取所有Gest/Sys/Dia的组编号

先从数据框列名里自动提取所有组的数字后缀,不管有多少个组(60+也适用)都能适配:

# 抓取所有以Gest开头的列,提取数字部分
group_nums <- sub("Gest(\\d+)", "\\1", grep("^Gest", colnames(DF1), value = TRUE))

2. 批量处理每组数据

循环每个组,判断对应Gest值是否≤GA,若是就把该组的Gest、Sys、Dia对应行设为NA:

for(num in group_nums) {
  # 拼接当前组的三个列名
  gest_col <- paste0("Gest", num)
  sys_col <- paste0("Sys", num)
  dia_col <- paste0("Dia", num)
  
  # 找出需要置为NA的行
  na_rows <- DF1[[gest_col]] <= DF1$GA
  
  # 批量赋值NA
  DF1[na_rows, c(gest_col, sys_col, dia_col)] <- NA
}

处理后效果

运行完代码,DF1就会变成你要的格式:

IDGest1Sys1Dia1Gest2Sys2Dia2Gest3Sys3Dia3GA
1NANANANANANA17212090165
2NANANA1701208018012986167

补充说明

  • 这个方法不需要手动列所有组,自动识别所有Gest开头的列,不管数量多少都能处理
  • 核心是通过列名的数字后缀关联对应的Sys、Dia列,实现批量操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:06:39