提取两个字符串之间不同的所有字符

时间:2015-03-04 07:43:09

标签: r string character

我使用adist来计算两个字符串之间不同的字符数:

a <- "#IvoryCoast TENNIS US OPEN Clément «Un beau combat» entre Simon et Cilic"
b <- "Clément «Un beau combat» entre Simon et Cilic"
adist(a,b) # result 27

现在我想提取那些不同字符的所有出现次数。在我的示例中,我想获取字符串"#IvoryCoast TENNIS US OPEN "

我尝试过并使用过:

paste(Reduce(setdiff, strsplit(c(a, b), split = "")), collapse = "")

但获得的结果并非我的预期!

#IvysTENOP

2 个答案:

答案 0 :(得分:4)

对于这种情况,您可以使用gsub。

> a <- "#IvoryCoast TENNIS US OPEN Clément «Un beau combat» entre Simon et Cilic"
> b <- "Clément «Un beau combat» entre Simon et Cilic"
> gsub(b, "", a)
[1] "#IvoryCoast TENNIS US OPEN "

答案 1 :(得分:1)

您可以根据paste/reduce解决方案执行操作:

paste(Reduce(setdiff, strsplit(c(a, b), split = " ")), collapse = " ")
#[1] "#IvoryCoast TENNIS US OPEN"

或者,如果您想通过setdiffstrsplit获取分隔的项目:

setdiff(strsplit(a," ")[[1]],strsplit(b," ")[[1]])
#[1] "#IvoryCoast" "TENNIS"      "US"          "OPEN"