1

データフレームdfc1には、次のようにフォーマットされた負の数値があります。

(1,000,000)

df$c1の負の値から括弧を削除して、次の値を返すようにしたいと思います。

-1,000,000

Rで次のコマンドを使用しています:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))

しかし、出力は目的の効果を返していません。

この R コマンドの正規表現を調整して適切な書式を返すにはどうすればよいですか?

4

2 に答える 2

2
gsub("\\((.+)\\)", "-\\1", "(1,000,000)")
# [1] "-1,000,000"
于 2013-10-18T19:21:16.140 に答える
1

代わりに次のようになりませんか。

df$c1<-sub('^\\(', '-' , sub('\\)$','',df$c1))

これにより、先頭の左括弧が削除されてマイナス記号に置き換えられ、末尾の右括弧が削除されます。あなたのバージョンは、「外側」のパターンが正確であると主張していましたが(、これはどのアイテムにも一致するとは思えず、「内側」の呼び出しを使用してコンマを削除していました。sub要素ごとにこれを一度だけ実行したいという要望があったため、に変更しました。

于 2013-10-18T19:20:20.940 に答える