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

在R中为DataFrame特定行的NGR字符串插入字符(偏好Tidyverse)

解决方案(Tidyverse风格)

针对批量处理Buffer=500行NGR字符串的需求,用dplyr配合自定义函数即可实现,具体步骤如下:

1. 加载Tidyverse包

library(tidyverse)

2. 定义字符串处理函数

针对ABXXXX格式的NGR字符串,封装你需要的插入逻辑:

方法一:Stringr风格(更直观的Tidyverse写法)

process_ngr <- function(ngr) {
  # 拆分原字符串,插入指定字符后拼接
  str_c(str_sub(ngr, 1, 4), "5", str_sub(ngr, 5, 6), "5")
}

方法二:沿用你原有的Regmatches逻辑

process_ngr <- function(ngr) {
  n <- 5
  n2 <- 8
  regmatches(ngr, `attr<-`(n, "match.length", 0)) <- "5"
  regmatches(ngr, `attr<-`(n2, "match.length", 0)) <- "5"
  ngr
}

3. 批量处理DataFrame

用case_when精准筛选目标行,批量应用处理函数:

df_processed <- df %>%
  mutate(NGR = case_when(
    Buffer == 500 ~ process_ngr(NGR),
    TRUE ~ NGR  # 非目标行保持原NGR不变
  ))

# 查看处理结果
df_processed

结果验证

处理后的DataFrame中,仅Buffer=500的行(如原NGRSD9501)会被修改为SD955015,其余行的NGR和其他列完全保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:10:12