删除R上的最后几个大写字母



我想知道如何删除最后几个大写字母和符号"R中每个观测字符串的?例如,如果我有这样的数据

PlayerFirstLastNameABC
PlayerNameAB/CDF
PlayerFirstMN
PlayerLastNameABC/RS

等等,我该如何将其返回给我:

PlayerFirstLastName
PlayerName
PlayerFirst
PlayerLastName

字符串的最后一个字母总是小写字母吗?即删除所有字符串的末尾,直到您找到小写字母为止。谢谢

我们可以使用base R中的sub来匹配一个或多个(+(大写字母和/,直到字符串的末尾($(,并替换为空白(""(

sub("[A-Z/]+$", "", v1)
#[1] "PlayerFirstLastName" "PlayerName"         
#[3] "PlayerFirst"         "PlayerLastName"  

或使用trimws

trimws(v1, whitespace = "[A-Z/]+", which = "right")
#[1] "PlayerFirstLastName" "PlayerName"       
#[3]   "PlayerFirst"         "PlayerLastName"      

数据

v1 <- c("PlayerFirstLastNameABC", "PlayerNameAB/CDF", "PlayerFirstMN", 
"PlayerLastNameABC/RS")

您可以捕获所有内容,直到大写字母和字符串末尾的/

sub('(.*?)[/A-Z]+$', '\1', x)
#[1] "PlayerFirstLastName" "PlayerName"  "PlayerFirst"  "PlayerLastName"

最新更新