从string中删除特定的最后一个字符

时间:2017-07-24 03:10:07

标签: r regex gsub

我有以下字符串向量:

 EC02   502R   603           515    602   
 KL07   601    511R   505R   506R   503   
 508    514    501    509R   510    501R  
 512R   516    507    604    502    601R  
 SPK01  504    504R   ACK01  503R   508R  
 507R   ACK03  513    EC01   506    ECH01 
 ACK02  SPK02  509    511    512    505   
 KA01   RS01   510R   SKL01  SPK03  603R  
 602R   604R   513R   AECH01 ER03   AECH02
 RS02   514R   ER01   RH01   AR05   RH02  
 515R   ER02   M01 

我想替换502R to 502, 501R to 501, 503R to 503等等......

只有在字符串末尾发生的字符R才会被替换。

如何使用gsub

2 个答案:

答案 0 :(得分:6)

如果你有一个字符串向量并想要替换它中的最后一个R字符,你可以使用sub$此处确保R是向量中的最后一个字符。

sub("R$", "", str)

#[1] "EC02"  "502"   "603"   "5RFRS"

数据

str <- c("EC02", "502R","603", "5RFRS)

我在这里使用了sub而不是gsubsub仅替换第一次出现的模式,而gsub替换所有出现的模式,但在这种情况下sub / gsub的使用无关紧要。

答案 1 :(得分:2)

lapply( dfrm, function(col_) {gsub( "R","",col_)} )