0

私はこのような文字列を持っています

x<-c("This is a test (120)")

テキストがこのようになるように、 test と ( の間の空白を置き換える必要があります

x<-c("This is a test(120)") 

私はこれを試しました

s<-gsub("\t\v\(", "", x) 

機能しません。ご意見をいただければ幸いです。

4

3 に答える 3

3

先読みを使用する:

gsub("\\s+(?=\\()", "", x, perl=TRUE) 
[1] "This is a test(120)"

答えは、必要な仕様によって異なります。左括弧の前のすべてのスペースを削除しますか? それとも1つだけ?それとも、数字を含む括弧の前だけですか?

于 2012-10-04T18:46:37.697 に答える
2

簡単な方法の 1 つは、次のように使用fixed = TRUEすることです。

gsub(" (", "(", x, fixed = TRUE)

また:

gsub(" \\(", "\\(", x)
于 2012-10-04T18:41:27.827 に答える
2

R では「ダブル エスケープ」する必要があります。1 つは R 用、もう 1 つは正規表現用です。

s <- gsub('\\s\\(', '(', x)

とはいえ、特定のユースケースによっては、これをより堅牢にしたい場合があります。

s <- gsub('(.+) \\((.+)\\)', '\\1(\\2)', x)
于 2012-10-04T18:42:58.340 に答える