String R-取出重复中的字符串编辑 我使用R中的一些字符数据,我在字符串中间有一些(FO)(FoO)部分。是否存在自动查找这些重复并删除它们(将它们表示为相同位置的(foo))的方法

String R-取出重复中的字符串编辑 我使用R中的一些字符数据,我在字符串中间有一些(FO)(FoO)部分。是否存在自动查找这些重复并删除它们(将它们表示为相同位置的(foo))的方法,string,r,repeat,String,R,Repeat,我想知道一个可能的解决方案是否是使用strsplitby),并检查是否有任何等价性,然后重新结束)返回。这样行吗 例如string:“abc def(foo)(foo)abc def”您可以在R中使用perl正则表达式替换,如下例所示: test <- "abc def (foo)(foo) abc def" gsub('(\\(\\w+\\))\\1','\\1',test,perl=TRUE) 您可以在R中使用perl正则表达式替换,如下例所示: test <- "abc de

我想知道一个可能的解决方案是否是使用strsplitby),并检查是否有任何等价性,然后重新结束)返回。这样行吗


例如string:“abc def(foo)(foo)abc def”

您可以在R中使用perl正则表达式替换,如下例所示:

test <- "abc def (foo)(foo) abc def"
gsub('(\\(\\w+\\))\\1','\\1',test,perl=TRUE)

您可以在R中使用perl正则表达式替换,如下例所示:

test <- "abc def (foo)(foo) abc def"
gsub('(\\(\\w+\\))\\1','\\1',test,perl=TRUE)

这里有可能只保留序列中的第一个重复元素:

gsub("(.+)\\1+","\\1", x, perl=T)

HTH

这里有一种可能性,可以只保留序列中的第一个重复元素:

gsub("(.+)\\1+","\\1", x, perl=T)

HTH

不清楚您的字符串看起来如何。最好给出该字符串的名称和示例。例如“abc def(foo)(foo)abc def”。但我的方法有效。首先按空格拆分,然后按空格拆分),然后测试等价性,并删除第二个。您应该将其添加到问题中,并添加预期结果。您的字符串外观不清楚。最好给出该字符串的名称和示例。例如“abc def(foo)(foo)abc def”。但我的方法有效。首先按空格拆分,然后按空格拆分),然后测试等价性,并删除第二个。您应该将其添加到问题中,并添加预期结果。