記号と単語に基づいて文字列の一部をRで抽出する必要があります。私は、このような記号と単語で文字列を分割する
s <-"++can+you+please-help +me"
として名前を持ち、出力は次のようになります
対応するシンボルとの全ての単語の前には示されて"+ can" "+you" "+please" "-help" "+me"
。私はstrsplitとsub関数を使用しようとしましたが、私が望む出力を得るのに苦労しています。手伝ってくれませんか?ありがとう!
記号と単語に基づいて文字列の一部をRで抽出する必要があります。私は、このような記号と単語で文字列を分割する
s <-"++can+you+please-help +me"
として名前を持ち、出力は次のようになります
対応するシンボルとの全ての単語の前には示されて"+ can" "+you" "+please" "-help" "+me"
。私はstrsplitとsub関数を使用しようとしましたが、私が望む出力を得るのに苦労しています。手伝ってくれませんか?ありがとう!
結果
library(stringi)
result = unlist(stri_match_all(regex = "\\W\\w+",str = s))
います
> result
[1] "+can" "+you" "+please" "-help" "+me"
ませシンボル
あなただけの単語(なしシンボルを)したい場合は、操作を行います。
ここresult = unlist(stri_match_all(regex = "\\w+",str = s))
result
[1] "can" "you" "please" "help" "me"
はbase R
regmatches(s, gregexpr("[[:punct:]]\\w+", s))[[1]]
#[1] "+can" "+you" "+please" "-help" "+me"
ありがとう!できます。 Rで探しているパターンを書く方法について、良い説明と良い例があるウェブサイトはありますか? –
を使用して一つの選択肢であるあなたが同じことを繰り返さないためにしようとしたものを共有してください。 –
https://stackoverflow.com/questions/15573887/split-string-with-regex – Olivia
なぜ "" + can "'があるスペースがありますか?プラス記号の1つを取り除き、そのスペースに置き換えようとしましたか? 'unlist(strsplit(s、split = "(?<= \\ w)\\ s *(?= [+ - ] +)"、perl = T)) ' – Abdou