繁体   English   中英

R:替换并重新排列字符顺序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM