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 回答