我的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我想用空值替换以DEL和INS开头的列值中的所有值。我的意思是,我希望获得如下输出
> df
ID Value
A_001
A_002
B_023 0
C_891 2
D_787 8
E_865 我试着用下面的代码在R中使用gsub来实现这一点,但它不起作用
gsub(pattern="(^([DEL|INS]*)",replacement="",df)有没有人可以指导我如何达到期望的输出。
提前谢谢。
发布于 2015-08-17 21:05:32
只需删除character类并在该组旁边添加.*即可。单靠sub就能完成这项工作。
df$value <- sub("^(DEL|INS).*", "", df$value)在字符类中,每个字符都会被优先处理,而不是整个字符串。因此,[DEL]将匹配给定列表中的单个字符,它可以是D、E或L。
发布于 2015-08-17 21:35:18
第一个字母不是数字:
df$value <- gsub("^\\D.*", "", df$value)或者删除值中有'-‘:
df$value <- gsub(".*-.*", "", df$value)https://stackoverflow.com/questions/32051184
复制相似问题