r - 测试字符串是否与位置 x 相同的函数

标签 r

是否有函数可以测试两个字符串在特定位置是否相同?或者也许是为了取回相同的部分和不同的部分。

我正在搜索一些字符串函数,但找不到现成可用的函数。但我预计这是一种常见的用法。

我希望是这样的:

a <- stringDiff('difference_MSA_vs_DFI', 'difference_SEL_vs_BLA')
print(a)
$identical
[1] "difference_"

$differing
[1] "MSA_vs_DFI" "SEL_vs_BLA"

最佳答案

我不知道有现成的功能可以做到这一点。这种自制的一种作品:它可能不是很有效,只能使用 2 个字符串。但也许足以满足您的目的:

stringDiff <- function(strings){
    string_by_letter = strsplit(strings, split = '')
    i_diff = which(string_by_letter[[1]] != string_by_letter[[2]])

    list(identical = substr(strings[1], 1, min(i_diff) - 1),
        differing = substr(strings, min(i_diff) , stop = 1000000L))
        }

stringDiff(strings =  c('difference_MSA_vs_DFI', 'difference_SEL_vs_BLA'))

$identical
[1] "difference_"

$differing
[1] "MSA_vs_DFI" "SEL_vs_BLA"

关于r - 测试字符串是否与位置 x 相同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162043/

相关文章:

r - 在插入符号中使用成本敏感 C50

r - 清除单独行 R 之后的组中除第一行之外的变量

R:找出每一行中所有非零元素的方差

r - 使用 dplyr 计数

r - data.table 和 table 意外行为

R:条形图:外部条形图和绘图区域之间的空间

r - 将 rCharts 添加到 packrat

r - 近似字符串匹配的逻辑是什么?

r - 如何在 R 中生成具有特定开始日期/时间的日期和时间序列

r - 赌博算法