Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在数据框中df列c1具有负数值,格式如下:
df
c1
(1,000,000)
我想从 中的负值中删除括号df$c1,以便返回:
df$c1
-1,000,000
我在 R 中使用以下命令:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
但是输出没有返回预期的效果。
如何调整此 R 命令中的正则表达式以返回正确的格式?
gsub("\\((.+)\\)", "-\\1", "(1,000,000)") # [1] "-1,000,000"
难道不是:
df$c1<-sub('^\\(', '-' , sub('\\)$','',df$c1))
这将删除前导左括号,用减号替换它们,并删除尾随右括号。您的版本坚持“外部”模式是完全(的,我怀疑它会匹配任何项目,并且正在使用“内部”调用删除逗号。我更改为,sub因为只希望为每个元素执行一次。
(
sub