给出一些数据:
test <- data.frame(strings = c('a;b;c;;;;;;;', 'd;e;f;g;h;i;j;k;l;m', 'n;o;p;q;r;;;;;', ';;;;;;;;;' ))
如何删除所有尾随分号以获取:
test <- data.frame(strings = c('a;b;c', 'd;e;f;g;h;i;j;k;l;m', 'n;o;p;q;r', '' ))
此数据框的功能:
答案 0 :(得分:5)
我认为你想要的正则表达式是“一个或多个分号后跟行尾”。所以这有效:
library(dplyr)
test %>%
mutate(newstrings = gsub(";{1,}$", "", strings))
strings newstrings
1 a;b;c;;;;;;; a;b;c
2 d;e;f;g;h;i;j;k;l;m d;e;f;g;h;i;j;k;l;m
3 n;o;p;q;r;;;;; n;o;p;q;r
4 ;;;;;;;;;
答案 1 :(得分:4)
您可以使用以下正则表达式,在字符串末尾选择1个或多个分号的所有序列,并将其替换为&#39;&#39;为了修剪它们。
;+$