列中符号的移动

时间:2019-06-25 06:21:25

标签: r

可复制示例

df <- data.frame("col1" = 1:3, "col2" = c(0.9, '9-', 10))

  col1 col2
1    1  0.9
2    2   9-
3    3   10

预期产量

  col1 col2
1    1  0.9
2    2   -9
3    3   10

问题

我正在尝试替换列中的所有-并将其粘贴在前面。有人可以告诉我该怎么做吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我们可以使用sub捕获-之前的字符作为一个组,-作为第二组的字符,在替换中提供捕获组的后向引用

sub("(.*)(-)$", "\\2\\1", df$col2)
#[1] "0.9" "-9"  "10" 

或使用一个捕获组

sub("(.*)-$", "-\\1", df$col2)