OPISłączenia dwóch ramek danych za pomocą Fuzzy/Przybliżona łańcuch pasujący w R
że dwa zbiory danych z informacjami, które trzeba połączyć. Jedynymi wspólnymi polami, które mam, są ciągi, które nie pasują idealnie, oraz pole numeryczne, które może być zasadniczo różne.
Jedynym sposobem na wyjaśnienie problemu jest pokazanie danych. Oto a.csv i b.csv. Próbuję połączyć B z A.
Istnieją trzy pola w B i cztery w A. Nazwa firmy (tylko plik A), nazwa funduszu, klasa aktywów i aktywa. Do tej pory mój nacisk został położony na próbując dopasować nazwy Funduszu poprzez zastąpienie słowa lub części struny do tworzenia dokładnych wyników, a następnie przy użyciu:
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")
Jednak to tylko doprowadza mnie do około 30% dopasowania. Resztę muszę zrobić ręcznie.
Aktywa to pole liczbowe, które nie zawsze jest poprawne i może się znacznie różnić, jeśli fundusz ma niskie aktywa. Klasa zasobów jest polem łańcucha, które jest "ogólnie" takie samo w obu plikach, jednak istnieją rozbieżności.
Dodanie do komplikacji są różne serie funduszy, B. pliku Na przykład:
AGF kanadyjski Wartość
AGF kanadyjski Value-D
W tych przypadkach, Muszę wybrać ten, który nie jest seryjny, lub wybrać ten, który nazywa się "A", "-A" lub "Doradca" jako mecz.
PYTANIE
Co byś powiedział, jest najlepszym rozwiązaniem? To ćwiczenie jest czymś, co muszę wykonywać co miesiąc, a ręczne dopasowywanie ich jest niezwykle czasochłonne. Przykłady kodu byłyby instrumentalne.
POMYSŁY
Jedną z metod, która myślę, że może pracować jest normalizowanie sznurki na podstawie pierwszego wielka litera każdego słowa w ciągu. Ale nie byłem w stanie wymyślić, jak to zrobić, używając R.
Inną rozważaną przeze mnie metodą było utworzenie indeksu wyników na podstawie kombinacji aktywów, nazwy funduszu, klasy aktywów i firmy. Ale znowu nie jestem pewien, jak to zrobić z R. Lub, jeśli o to chodzi, jeśli to nawet możliwe.
Przykłady kodu, komentarzy, myśli i kierunku są bardzo mile widziane!
Jeśli mówimy o dopasowaniu ciągów, to '? Agrep' (w pakiecie podstawowym). – Marek
Byłoby wspaniale, gdyby można było umieścić część danych w poście, aby móc korzystać z przykładu kilka lat po opublikowaniu. Dzięki. – Jochem
rzeczywiście kilka lat później, a dane nie są dostępne. –