[英]R: Replacing and rearranging the order of characters
我想重新排列符号的顺序并删除数据框中的某些字符。 例如,
14(-)
6(-)
NA
32(+)
成为
-14
-6
NA
32
我试过gsub("()+", "", x)
但这只处理正数。
我当时想拆分单元格,然后在ifelse
列上应用ifelse
,但是当我尝试使用来自stringr
str_split(x, "(")
拆分单元格时,却怀疑由于缺少值,我收到了一条错误消息
gregexpr(“(”,c(“ 14(-)”,“ 6(-)”,NA,“ 32(+)”))中的错误:无效的正则表达式'(',原因为'Missing')'。
我尝试将丢失的值替换为“(”),然后尝试再次拆分,但未成功。
但是我敢肯定,应该有一种更简单(且痛苦更少)的方法来做到这一点。
一种可能的解决方案是将数字和符号捕获到单独的组中,重新排序并转换为数字
x <- c("14(-)", "6(-)", NA, "32(+)", "10.3(-)", "13.2(+)")
as.numeric(gsub("(.*)\\((.*)\\)", "\\2\\1", x))
# [1] -14.0 -6.0 NA 32.0 -10.3 13.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.