Matchen/Mergen von Daten mit unterschiedlichen ID-Varianten

Fragen zu Stata Syntax und Do-Files.

Matchen/Mergen von Daten mit unterschiedlichen ID-Varianten

Beitragvon Yellowdog » Mi 26. Okt 2011, 11:03

Hallo,

ich habe zwei Datensätze mit unterschiedlichen ID-Typen, die aber auf gleichen Fällen beruhen. Dabei sind die IDs des einen Datensatzes in der ID des anderen mit enthalten...z.b. 7-1234-567-89 vs. 1234-56. Die Stellenanzahl beider ID-Typen kann dabei variieren, sicher ist nur, das beide "unique" sind und die kürzere in jedem Fall (ausgenommen Datenfehler) nur in eine längere reinpasst. Gibts da eine Lösung für STATA, die Daten zu matchen/mergen? Eine SPSS-Lösung würde auch gehen, ich arbeite beiden Programmen. ...bzw mir würde eine Anpassung der IDs schon reichen, das Zusammenführen ist dann kein Problem mehr.

Vielen Dank für Eure Hilfe,
Y.
Yellowdog
 
Beiträge: 1
Registriert: Mi 26. Okt 2011, 10:41
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Matchen/Mergen von Daten mit unterschiedlichen ID-Varian

Beitragvon daniel » Mi 26. Okt 2011, 13:22

Zunächst möchte ich darauf hinweisen, dass das was Du vorhast aufgrund der Datenbeschaffenheit sehr Fehleranfällig aussieht. Auf eine Variable zu -merge-n ist prinzipiell schon suboptimal, aber was Du da hast sieht wirklich nicht vertrauenswürdig aus. Vgl. auch http://blog.stata.com/2011/04/18/mergin ... -gone-bad/ sowie den zweiten Teil.

Ich nehme an beide Variablen liegen als string variable vor, da "-" kein valides nummerisches Zeichen ist. Ich könnte mir folgeden (pseudo-)code vorstellen:

Definitionen

data_short: Datensatz mit kurzen ids
data_long: Datensatz mit lagen ids
id: Variablenname der die ids enthält

Code: Alles auswählen
* get list of short ids
use data_short.dta ,clear
qui levelsof id ,l(lvls)

* change long id to short id
use data_long.dta ,clear
clonevar old_id = id //copy old id
foreach l of loc lvls {
    qui replace id = "`l'" if strpos(old_id, "`l'")
}

* check id
isid id

* merge the data
merge 1:1 id using data_short


Keine Garantie.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron