32

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

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

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

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

> a
[1] 5 7

「^* 」や「? 」なども試しましたが、うまくいきませんでした。

4

4 に答える 4

56

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

gsub(".*_", "", a)
于 2012-08-02T11:19:00.527 に答える
7

または、次を試すこともできます。

gsub("\\S+_", "", a)
于 2016-04-09T20:20:57.263 に答える
1

からの関数を使用するアプローチがあることを指摘するだけです。これはtidyverse、より読みやすいと思いますgsub

a %>% stringr::str_remove(pattern = ".*_")
于 2020-06-02T18:43:53.480 に答える