Я относительно новичок в R и на языках сценариев на основе матриц. Я написал эту функцию, чтобы возвращать индекс каждой строки, которая имеет контент, подобный содержимому любой другой строки. Это примитивная форма спама, которую я разрабатываю.Могу ли я еще раз прорисовать эту функцию
if (!require("RecordLinkage")) install.packages("RecordLinkage")
library("RecordLinkage")
# Takes a column of strings, returns a list of index's
check_similarity <- function(x) {
threshold <- 0.8
values <- NULL
for(i in 1:length(x)) {
values <- c(values, which(jarowinkler(x[i], x[-i]) > threshold))
}
return(values)
}
есть ли способ, которым я мог бы написать это, чтобы полностью избежать цикла for?
@akrun обновлена, веселит – user2228313
@db нет, я сравниваю против всех остальных строк, х [я], х [-i] – user2228313
может попробовать это: ' m = as.matrix (sapply (x, jarowinkler, x))> порог; diag (m) = 0; который (rowSums (m)> 0) 'Нет воспроизводимых данных для меня, чтобы проверить, но я думаю, что это работает. – dww