Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列のアンダースコアの前にある部分文字列を削除するのに苦労しています。アンダースコアが変化する前のビットとして*(ワイルドカード)を使用したい:
a <- c("foo_5", "bar_7") a <- gsub("*_", "", a, perl = TRUE)
結果は次のようになります。
> a [1] 5 7
「^* 」や「? 」なども試しましたが、うまくいきませんでした。
次のコードはあなたの例で動作します:
gsub(".*_", "", a)
または、次を試すこともできます。
gsub("\\S+_", "", a)
からの関数を使用するアプローチがあることを指摘するだけです。これはtidyverse、より読みやすいと思いますgsub。
tidyverse
gsub
a %>% stringr::str_remove(pattern = ".*_")