1
ビットを正規表現で苦労させる。私はregexに新しく、以下の基本的なサンプルデータフレームを作成しました。 tidyr
の抽出機能を使用して、Hourly.Pay
から毎時支払いをHourly
という新しい列に抽出しようとしています。Tidyrの抽出と正規表現を使用して厄介なデータフレームを整理する賃金と給与を含む列
Name <- c("Client1","Client2","Client3","Client4","Client5","Client6","Client7","Client8","Client9","Client10","Client11","Client12","Client13")
Hourly.Pay <- c("$14.00","$14","$20.22","$18.00/Hour","$15","19/hourly","$40,000","$345.00","$1920/month","$11.25","12.75 hr","67K/year","15.25")
Pay<-data.frame(Name,Hourly.Pay)
以下は、私がこれまでほとんど正規表現で使ってきたものです。私は最初の2桁の後にピリオドを持たないエントリをキャプチャできませんでした。オプションのドル記号と、その後にピリオド、ピリオド、少なくとも2つ以上の数字、またはピリオドまたは他の数字のいずれかが続く2桁の数字を取得する必要があります。
Pay2 <- extract(Pay, Hourly.Pay, "Hourly", "^(\\$?\\d{2}\\.\\d*)",remove=FALSE)
助けていただければ幸いです。可能であれば、正規表現の文字についても説明が提供されれば素晴らしいでしょう。
ありがとうございます!
作品(サンプルデータのための、少なくとも)が、データと同じくらい醜いです: 'エキス(有料、Hourly.Pay、 '毎時'、「(<[\\ \?!。 (F!)、FALSE) ' – alistaire
ありがとうございました。(\\ $?\\ d {2}(?:\\。\\ d *)? (?<!という意味ですか?私はこれまでに見たことがありません: – Mike
'(?<!...)'は[否定的なlookbehind]です(http://www.regular-expressions.info /?)(内部の文字は後に続くものではありません)、 '(?:...)'は[巧妙なグループではありません](http://www.regular-expressions.info/brackets.html )[こちらのマッチングの説明](https://regex101.com/r/dK3uO5/1)を参照してください。 – alistaire