删除 R 中的括号并将值转换为负数

Pan*_*rma 1 r

我在 R 中的一些数字列中遇到了这个问题。一些列中的一些负值放在括号中,列被转换为因子。

如何删除R中的括号并使值变为负数?例如。“(265)”到-265

如何在 R 中使用 gsub 函数来做到这一点?如果有任何其他方法可用,请提出建议。

Nic*_*ton 5

这是一个替代方案。正则表达式匹配对以圆括号开头和结尾的值进行,并在其间包含一个或多个数字字符,返回前面带有减号的中间组(数字字符)。然后将整个批次转换为数字:

as.numeric(gsub("^\\(([1-9]+)\\)$","-\\1",x))
Run Code Online (Sandbox Code Playgroud)