설명는 내가 병합하는 데 필요한 정보와이 개 데이터 세트를 가지고 R
에 퍼지/대략 문자열 매칭을 사용하여 프레임. 내가 가진 유일한 공통 필드는 완벽하게 일치하지 않는 문자열과 실질적으로 다를 수있는 숫자 필드입니다.
문제를 설명하는 유일한 방법은 데이터를 표시하는 것입니다. 여기에 a.csv 및 b.csv입니다. B와 A를 병합하려고합니다.
A. 회사 이름 (파일 A 전용), 기금 이름, 자산 클래스 및 자산에는 B 필드와 필드가 있습니다. 지금까지, 내 초점은 단어 나 정확한 일치를 만들 수있는 문자열의 부품을 교체 한 후 사용하여 펀드 이름과 일치하도록 시도에있다 :
a <- read.table(file = "http://bertelsen.ca/R/a.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T)
b <- read.table(file = "http://bertelsen.ca/R/b.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T)
merge(a,b, by="Fund.Name")
그러나이 약 30 % 일치하는 날을 제공합니다. 나머지는 손으로해야합니다.
자산은 항상 정확하지 않은 숫자 필드이며 펀드의 자산이 적을 경우 크게 달라질 수 있습니다. Asset Class는 두 파일에서 "일반적으로"동일한 문자열 필드이지만 불일치가 있습니다. ,
AGF 캐나다 값
AGF 캐나다 값-D 이러한 경우
: 합병증에 추가
는 예를 들어, 파일 B에, 자금의 다른 일련의 나는 세속적이지 않은 것을 고르거나, "A", "-A"또는 "Advisor"라고 불리는 것을 선택해야합니다.
당신은 무엇을 말할 것
질문이 가장 좋은 방법입니까? 이 운동은 매월해야 할 일이며 수동으로 매치하는 것은 엄청나게 많은 시간이 걸립니다. 코드의 예는 유용 할 것입니다.
아이디어 내가 문자열의 각 단어의 첫 대문자를 기반으로 문자열을 정상화되어 작동 할 수 생각
한 가지 방법. 그러나 나는 R을 사용하여 그 방법을 찾아 낼 수 없었습니다.
내가 고려한 또 다른 방법은 자산, 펀드 이름, 자산 클래스 및 회사의 조합을 기반으로하는 일치 지수를 작성하는 것이 었습니다. 그러나 다시, 나는 R로 이것을 어떻게하는지 확신하지 못한다. 또는 그것이 중요 할지라도 그것이 가능하다면.
코드, 의견, 생각 및 방향에 대한 사례를 크게 높이 평가합니다.
우리가 문자열 일치에 대해 말하면 '? agrep' (기본 패키지에서). – Marek
게시 후 몇 년 동안 예제를 사용할 수 있도록 게시물의 데이터 부분을 만들 수 있다면 좋을 것입니다. 감사. – Jochem
실제로 몇 년 후에 데이터가 없습니다. –