1
我想使用庫('RecordLinkage')和compare.dedup()函數來替換單個列中的重複值。使用模糊匹配替換數據幀列中的重複值
此post類似,我有一個矢量
tv3 = c("TOURDEFRANCE", 'TOURDEFRANCE', "TOURDE FRANCE", "TOURDE FRANZ", "GET FRESH")
,我想輸出是以下,基於重量的一組值(例如> 0.8):
("TOURDEFRANCE", 'TOURDEFRANCE', "TOURDEFRANCE", "TOURDEFRANCE", "GET FRESH")
這裏的我試過代碼來獲取匹配數據幀:
tv3 = as.data.frame(c("TOURDEFRANCE", 'TOURDEFRANCE', "TOURDE FRANCE",
"TOURDE FRANZ", "GET FRESH"))
colnames(tv3) <- "name"
tv3 %>% compare.dedup(strcmp = TRUE) %>%
epiWeights() %>%
epiClassify(0.8) %>%
getPairs(show = "links", single.rows = TRUE) -> matches
但是得到我需要什麼,我用ŧ他以下循環:
matches <- matches[order(matches$id1),]
tv3new <- tv3
for (i in 1:nrow(matches)) {
tv3new[tv3new$name==matches[i,'name.2'],] <- matches[i,'name.1']
}
tv3new
這給我我想要的,但如果使用循環不知道是做的最好的辦法,或者如果我失去了一些東西明顯。