我有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)
任何人都可以指导我如何实现所需的输出.
提前致谢.
只需删除字符类并.*在该组旁边添加即可.sub独自完成这项工作.
df$value <- sub("^(DEL|INS).*", "", df$value)
Run Code Online (Sandbox Code Playgroud)
在字符类中,每个字符都将被视为整个字符串.因此[DEL]匹配给定列表中的单个字符,它可能是D或E或L.
第一个字母不是数字:
df$value <- gsub("^\\D.*", "", df$value)
Run Code Online (Sandbox Code Playgroud)
或者删除值中有“-”:
df$value <- gsub(".*-.*", "", df$value)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20209 次 |
| 最近记录: |