0
我對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沒有,我比較反對所有其他行,X [I],X [-i] – user2228313
也許試試這個:' m = as.matrix(sapply(x,jarowinkler,x))> threshold; diag(m)= 0;哪些(rowSums(m)> 0)'沒有可重複的數據供我測試,但我認爲這是有效的。 – dww