web-dev-qa-db-ja.com

gsubを使用して文字列からパターンを削除する

文字列のアンダースコアの前の部分文字列を削除するのに苦労しています。アンダースコアが変わる前のビットとして*(ワイルドカード)を使用したい:

a <- c("foo_5", "bar_7")

a <- gsub("*_", "", a, Perl = TRUE)

結果は次のようになります。

> a
[1] 5 7

「^ * 」または「?」なども試しましたが、実際には機能しませんでした。

25
user969113

次のコードはあなたの例で動作します:

gsub(".*_", "", a)
49
Pop

または、試すこともできます:

gsub("\\S+_", "", a)
7
Madhu Sareen