如何删除字符串中重复的字符序列?

问题描述 投票:0回答:1

我在 tibble 中有一个列,该列应始终具有 8 个字符的字符串作为其值,例如

ABCDEF12

不幸的是,我有时会得到字符串中重复 2 个字符的值,例如

ABCDCDEF12

重复字符的顺序不固定,可以是

ABABCDEF12
,或者
ABCDEFEF12

对于通过删除重复序列将这些字符串减少到 8 个字符,您有什么建议吗?

如果我们将上面的例子作为输入,我们最终应该总是以

ABCDEF12
作为输出。

要知道的另一件重要的事情是,我在一台无法访问互联网的计算机上工作,我可以使用

tidyverse
,但我无法安装任何其他软件包。

非常感谢您的帮助!

r regex string replace
1个回答
0
投票

假设您的特征向量是

string
:

string <- c("ABCDEF12", "ABCDCDEF12", "ABABCDEF12", "ABCDEFEF12")

然后我们可以使用基 R

strsplit
+
unique
+
paste0
迭代使用
sapply
:

> strsplit(string, "")|>
    sapply(\(x) paste0(unique(x), collapse = ""))
[1] "ABCDEF12" "ABCDEF12" "ABCDEF12" "ABCDEF12"
© www.soinside.com 2019 - 2024. All rights reserved.