Удалите последние несколько заглавных букв в R

#r #string

#r #строка

Вопрос:

Мне было интересно, как я мог бы удалить последние несколько заглавных букв и символ «/» каждой строки наблюдения в R? Например, если у меня есть такие данные, как

     PlayerFirstLastNameABC
    PlayerNameAB/CDF
    PlayerFirstMN
    PlayerLastNameABC/RS
 

и так далее, как мне заставить его вернуться ко мне:

     PlayerFirstLastName
    PlayerName
    PlayerFirst
    PlayerLastName
 

где последняя буква строки всегда является строчной буквой? т. е. Удаляйте все концы строк, пока не нажмете строчную букву. Спасибо!

Ответ №1:

Мы можем использовать sub from base R для сопоставления одной или нескольких ( ) прописных букв вместе с / до конца ( $ ) строки и заменить на blank ( "" )

 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")
 

Ответ №2:

Вы можете записывать все, вплоть до прописных букв и / в конце строки.

 sub('(.*?)[/A-Z] 



, '\1', x)
#[1] "PlayerFirstLastName" "PlayerName" "PlayerFirst" "PlayerLastName"