在数据框df
列c1
中,负数值的格式如下:
(1,000,000)
我想从df$c1
中的负值中删除括号,以便返回:
-1,000,000
我在R中使用以下命令:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
但输出没有返回所需的效果。
如何在此R命令中调整正则表达式以返回正确的格式?
答案 0 :(得分:2)
gsub("\\((.+)\\)", "-\\1", "(1,000,000)")
# [1] "-1,000,000"
答案 1 :(得分:1)
不会是:
df$c1<-sub('^\\(', '-' , sub('\\)$','',df$c1))
这将删除前导左箭头,用减号替换它们,并删除尾随右箭头。你的版本坚持认为'外部'模式正好是(
,我怀疑它会匹配任何项目,并使用'内部'调用删除逗号。我改为sub
,因为每个元素只需要做一次。