Я хочу написать функцию, которая разделила бы строку на список триграмм, например.Разбирать строку до n-грамма без использования для цикла - R
"JOHNSTEWART" --> chr [1:9] "JOH" "OHN" "HNS" "NST" "STE" "TEW" "EWA" "WAR" "ART"
Я могу написать это, используя для цикла,
ngram_function <- function(x){
if(!is.na(x)&(nchar(x)>2)){
ngram <- rep("n", n= nchar(x)-3+1)
for (i in c(1:nchar(x)-2)){
ngram[i] <-(substr(x, start =i,stop= i-1+3))
}
return(ngram)
}
else{
return(x)
}
}
Но это занимает много времени, чтобы масштабировать для большого числа значений, есть ли другие R-оптимизированная версия, чтобы сделать это?