我在 R 中的一些数字列中遇到了这个问题。一些列中的一些负值放在括号中,列被转换为因子。
如何删除R中的括号并使值变为负数?例如。“(265)”到-265
如何在 R 中使用 gsub 函数来做到这一点?如果有任何其他方法可用,请提出建议。
这是一个替代方案。正则表达式匹配对以圆括号开头和结尾的值进行,并在其间包含一个或多个数字字符,返回前面带有减号的中间组(数字字符)。然后将整个批次转换为数字:
as.numeric(gsub("^\\(([1-9]+)\\)$","-\\1",x))
Run Code Online (Sandbox Code Playgroud)