gpt4 book ai didi

r - R中的字符串匹配算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:11:16 24 4
gpt4 key购买 nike

我想找到字符串匹配,从一开始就匹配字符数。我有两个字符串 a <- "ABCDBADCABC" , b <- "ABC" .我想找到 b 的匹配项在a .我有兴趣找到是否 b <- "ABC"存在于 a <- "ABCDBADCABC" 的开头.除了开始之外,我没有寻找字符串匹配的其他位置。

其他示例: b <- ABCDBADCABC , a <- "ABCDAB" ,这里只有a四个字符匹配b从头开始。所以输出将是ABCD匹配来自 a .R 中有哪些可用选项?去做这个。

最佳答案

我会保持简单,让 ab 向量包含单独的字符。然后字符串匹配就很简单了。

## Make a and b
b = "ABCDBADCABC"
a = "ABCDAB"

求最短向量的长度

min_char = min(nchar(a), nchar(b))

然后拆分ab

a_split =  strsplit(substr(a,1, min_char), "")[[1]]
b_split = strsplit(substr(b,1, min_char), "")[[1]]

比较使用标准运算符

comp = a_split == b_split

找到第一次出现的FALSE

which.min(comp) - 1

用更少的代码:

compare(a, b)

在哪里

compare = function(a, b) {
min_char = min(nchar(a), nchar(b))
a_split = strsplit(substr(a,1, min_char), "")[[1]]
b_split = strsplit(substr(b,1, min_char), "")[[1]]
comp = a_split == b_split
which.min(comp) - 1
}

关于r - R中的字符串匹配算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com