使用R中的gsub替换数据框列中的特定值

Car*_*rol 3 regex r gsub

我有data.frame如下

> df
ID      Value
A_001   DEL-1:7:35-8_1 
A_002   INS-4l:5_74:d
B_023   0 
C_891   2
D_787   8
E_865   DEL-3:65:1s:b
Run Code Online (Sandbox Code Playgroud)

我想替换列中的值以DEL和INS开头的所有值.我的意思是我想获得如下输出

> df
ID      Value
A_001   
A_002   
B_023   0 
C_891   2
D_787   8
E_865   
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码在R中使用gsub来实现这一点,但它没有用

gsub(pattern="(^([DEL|INS]*)",replacement="",df)
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我如何实现所需的输出.

提前致谢.

Avi*_*Raj 8

只需删除字符类并.*在该组旁边添加即可.sub独自完成这项工作.

df$value <- sub("^(DEL|INS).*", "", df$value)
Run Code Online (Sandbox Code Playgroud)

在字符类中,每个字符都将被视为整个字符串.因此[DEL]匹配给定列表中的单个字符,它可能是DEL.


She*_*hen 5

第一个字母不是数字:

df$value <- gsub("^\\D.*", "", df$value)
Run Code Online (Sandbox Code Playgroud)

或者删除值中有“-”:

df$value <- gsub(".*-.*", "", df$value)
Run Code Online (Sandbox Code Playgroud)