データフレームdf
列c1
には、次のようにフォーマットされた負の数値があります。
(1,000,000)
df$c1
の負の値から括弧を削除して、次の値を返すようにしたいと思います。
-1,000,000
Rで次のコマンドを使用しています:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
しかし、出力は目的の効果を返していません。
この R コマンドの正規表現を調整して適切な書式を返すにはどうすればよいですか?
gsub("\\((.+)\\)", "-\\1", "(1,000,000)")
# [1] "-1,000,000"
代わりに次のようになりませんか。
df$c1<-sub('^\\(', '-' , sub('\\)$','',df$c1))
これにより、先頭の左括弧が削除されてマイナス記号に置き換えられ、末尾の右括弧が削除されます。あなたのバージョンは、「外側」のパターンが正確であると主張していましたが(
、これはどのアイテムにも一致するとは思えず、「内側」の呼び出しを使用してコンマを削除していました。sub
要素ごとにこれを一度だけ実行したいという要望があったため、に変更しました。