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

如何移除R语言data.frame中Temp_id列逗号前的字符串内容?

移除R语言data.frame中指定列逗号及之前内容的方法

方法1:Base R 原生正则替换(gsub)

直接使用Base R的gsub函数,通过正则表达式匹配并替换掉逗号及之前的所有内容。正则^.*,会贪婪匹配从字符串开头到最后一个逗号的所有字符,将其替换为空字符串即可;没有逗号的行则保持原样。

# 原始数据
dummy_data <- structure(list(Date = c("24/06/2002", "24/06/2002", "01/07/2002", 
                                     "01/07/2002", "08/07/2002", 
                                     "08/07/2002","15/07/2002","17/07/2002", 
                                     "22/07/2002", "22/07/2002", "29/07/2002"), 
                             Temp_id= c("ABC", "M567", "M567", "M567", "XYZ", "XYZ", 
                                "T300/500,XYZ", "T300/390,XYZ", "0000,M300", "1234,M678", "ABC")), class = 
                           "data.frame", 
                        row.names = c(NA, -11L))

# 处理Temp_id列
dummy_data$Temp_id <- gsub("^.*,", "", dummy_data$Temp_id)

# 输出结果
dummy_data

方法2:Tidyverse 生态解决方案(stringr包)

如果日常使用tidyverse工具链,可以用stringr包的字符串处理函数完成需求:先用str_extract提取逗号后的内容,再用coalesce处理无逗号的行(避免返回NA),最后移除提取结果开头的逗号。

library(tidyverse)

# 数据清洗
dummy_data_cleaned <- dummy_data %>%
  mutate(
    Temp_id = coalesce(str_extract(Temp_id, ",(.*)$"), Temp_id) %>% 
      str_remove("^,")
  )

# 输出结果
dummy_data_cleaned

两种方法处理后,Temp_id列都会符合目标要求:仅保留逗号后的字符串,无逗号的行保持原始值不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:21:01