3
У меня есть вектор шаблонов, и вам нужно использовать agrep
. Проблема в том, что agrep
, по-видимому, занимает всего один шаблон за раз.R: agrep с векторным рисунком
patt <- c("test","10 Barrel")
lut <- c("1 Barrel","10 Barrel Brewing","Harpoon 100 Barrel Series","resr","rest","tesr")
for (i in 1:length(patt)) {
print(agrep(patt[i],lut,max=1,v=T))
}
Результат:
[1] "rest" "tesr"
[1] "1 Barrel" "10 Barrel Brewing" "Harpoon 100 Barrel Series"
for
медленно на длинных моделей, пытаясь таким образом, чтобы сделать это в векторизованного форме:
VecMatch1 = function(string, stringVector){
stringVector[agrep(string, stringVector, max = 1)]
}
a = VecMatch1(patt,lut)
Warning message:
In agrep(string, stringVector, max = 1) :
argument 'pattern' has length > 1 and only the first element will be used
Может быть такие функции, как lapply
и т.д. может помочь? Благодаря!!
Да, спасибо! Я попробовал 'lapply', но использовал неправильный синтаксис - не поставил функцию в нужное место –
Оказалось, оба метода имеют сопоставимую скорость. –
Как вы подходите к нему с dplyr или data.table? –