2017-12-28 6 views
0

아래 필드가있는 2 열의 csv 파일에서 정렬과 함께 패턴 일치를 얻는 방법. 참고 : 언급 된 값이 아래에서 올바르지 않을 수 있습니다. 그러나 정렬 패턴이 얼마나 정확한지를 알고 싶을 때. 경우열 정렬 패턴 검색

Field1 Field2 % match 
aaaa aa  66.667 
bbb  ab  40 
ccc  ccd  66.667 
ddd  ddcv  57.142 
+0

안녕하세요! [최소한의 완전하고 검증 가능한 예제를 작성하는 방법에 대한이 자습서] (https://stackoverflow.com/help/mcve)를보고 원하는 결과물과 이미 시도한 내용에 대해 자세히 설명하십시오. . – Vincent

+1

'% match'를 계산하는 규칙은 무엇입니까? – Uwe

답변

0

당신은 당신이 'Levenshtein 거리'또는 'JARO - 윈 클러 거리'를 사용하여 계산할 수 두 문자열 사이의 유사성 비율을 알고 싶어요.

#sample data 
> dput(df) 
structure(list(Field1 = c("aaaa", "bbb", "ccc", "ddd", "aa", 
"aa"), Field2 = c("aa", "ab", "ccd", "ddcv", "aas", "aba")), .Names = c("Field1", 
"Field2"), class = "data.frame", row.names = c(NA, -6L)) 

library(dplyr) #Levenshtein distance library(RecordLinkage) df_lv <- df %>% mutate(per_match = levenshteinSim(Field1, Field2)) df_lv # Field1 Field2 per_match #1 aaaa aa 0.5000000 #2 bbb ab 0.3333333 #3 ccc ccd 0.6666667 #4 ddd ddcv 0.5000000 #5 aa aas 0.6666667 #6 aa aba 0.6666667 #Jaro–Winkler distance library(stringdist) df_jw <- df %>% mutate(per_match = stringsim(Field1, Field2, method="jw")) df_jw # Field1 Field2 per_match #1 aaaa aa 0.8333333 #2 bbb ab 0.6111111 #3 ccc ccd 0.7777778 #4 ddd ddcv 0.7222222 #5 aa aas 0.8888889 #6 aa aba 0.6111111 

:
난 당신이 게시물에 언급 된 비율을 계산하는 방법을 모르겠습니다. @Uwe는 이미 코멘트 섹션에서 언급 했으므로 다른 사람들이 당신을 도울 수 있도록이 숫자를 얻는데 사용 된 알고리즘을 알려 주어야 할 수도 있습니다.

+0

나는 무작위로 값을 계산했지만, 같은 것을 필요로하기 때문에 동일한 방법으로 정렬해야합니다. –

+0

나는 그것을 이해한다면 정말로 확신 할 수 없다. [원본 게시물] (https://stackoverflow.com/posts/48003035/edit)에 백분율 계산 알고리즘을 설명해 주시겠습니까? – Prem

+0

예를 들어, "aa"가 "aas"와 다른 경우와 "aba"가 다르게 적용될 때와 같이 정렬 기준 % 계산을 원했을 때 –