3

で区切られた文字列が_あり、最後の 2 つの要素を削除したいと考えています。たとえば、 from A_B_C_DI want to returnA_Bと from A_B_C_D_EI want A_B_C. str_split_fixed私はから試しましたstringr

my_string <- "A_B_C_D"
x <- str_split_fixed(my_string,"_",3) 

"A" "B" "C_D"しかし、それは代わりに 戻ります"A_B" "C" "D"。そうでなければ、取得することができたでしょhead(x,-2)A_B

よりも良い方法はありますか

paste(head(unlist(strsplit(my_string,"_")),-2),collapse="_")
4

1 に答える 1

7

正規表現を使用するのはどうですか:

sub('(_[A-Z]){2}$', '', 'A_B_C_D')

数字2は、ドロップする長さです。

于 2013-02-01T15:13:09.587 に答える