gpt4 book ai didi

r - 在 R 中找到 2 个整数的最长匹配

转载 作者:行者123 更新时间:2023-12-02 00:33:33 25 4
gpt4 key购买 nike

我有 2 个包含数字的列表,我需要将一个列表的值与另一个列表的值进行匹配。匹配必须根据数字的开头进行。它必须返回可能的最长匹配的 row_id。

lookup value: 12345678

find_list:
a 1
b 12
c 123
d 124
e 125
f 1234
g 1235

在此示例中,我们将与 a,b,c,f 进行匹配,并且 R 必须返回 f。由于 f 是最长的,因此是最佳匹配。

我现在已经使用了 R 中的 startsWith 函数。从这个答案中我选择了最长的值。但问题是名单太大了。我在 find_list 中有 1850 万个查找值和 300,000 个可能值,一段时间后 R 崩溃了。

有更聪明的方法吗?

最佳答案

find_list$X[which.max(sapply(find_list$find_list, function(myX)
attr(gregexpr(myX, lookup_value)[[1]], "match.length")))]
#[1] "f"

数据

find_list = structure(list(X = c("a", "b", "c", "d", "e", "f", "g"), find_list = c(1L, 
12L, 123L, 124L, 125L, 1234L, 1235L)), .Names = c("X", "find_list"
), class = "data.frame", row.names = c(NA, -7L))

lookup_value = 12345678

关于r - 在 R 中找到 2 个整数的最长匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517561/

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