2014-03-31 4 views
5

Ich arbeite mit einer Reihe von DTA-Dateien, die Umfragen aus verschiedenen Jahren darstellen. Praktischerweise verwendet jedes Jahr andere Werte für die Variable "country", also versuche ich, die "country" -Wertbeschriftungen für jedes Jahr passend zu setzen.Wertelabel verwenden in If-Befehl in Stata

Ich habe Probleme beim Vergleichen von Wert Etiketten, aber ich kann nicht mit der richtigen Syntax kommen. Im Moment muss ich folgendes:

replace country=1 if countryO=="Japan" 
replace country=2 if countryO=="South Korea" | countryO=="Korea" 
replace country=3 if countryO=="China" 
replace country=4 if countryO=="Malaysia" 

Aber das funktioniert nicht, weil „Japan“ ist der Wert, Etikett, nicht der tatsächliche Wert. Wie sage ich Stata, dass ich das Wertelabel vergleiche? Ich weiß, dass dies einfach sein wird, aber ich bin seit einer Stunde bei Google und habe nicht den richtigen Weg gefunden, diese Frage zu stellen. Jede Hilfe wird geschätzt.

+3

Genau genommen ist das 'if' hier das' if' Qualifikationsmerkmal; Der 'if' Befehl ist anders. Beachten Sie, dass, wenn Sie im Index zum Benutzerhandbuch nachsehen, nur zwei Einträge auf Wertelabels vorhanden sind und 13.10 die von Ihnen benötigten Details enthält. Vergleichen Sie meine früheren Anmerkungen zum Googeln, wenn Sie die Dokumentation direkt dort haben. –

+0

Dieses Stata-Benutzerhandbuch ist großartig, ich konnte schnell herausfinden, was ich nicht verstand, nämlich, dass Wertelabels in einem eigenen Objekt gespeichert und dann auf eine Variable abgebildet werden. Danke, dass Sie dies vorgeschlagen haben, die Stata-Hilfeseiten sind in den Google-Ergebnissen aber nicht in diesem Handbuch enthalten. – jamzsabb

Antwort

9

Versuche

replace country=1 if countryO=="Japan":country0valuelabel 
replace country=2 if inlist(countryO,"South Korea":country0valuelabel,"Korea":country0valuelabel) 

Sie country0valuelabel mit dem entsprechenden Wert Label-Namen in Ihren Daten zu ersetzen. Sie können seinen Namen herausfinden, indem Sie die vorletzte Spalte in der Ausgabe von describe country0 betrachten.

+0

Genau das, was ich brauchte, danke für den Vorschlag. Der beschreibende countryO Befehl half mir, alles zusammen zu setzen, danke für die Hilfe – jamzsabb

2

Um @ Antwort des Dimitriy ergänzen:

clear all 
set more off 

sysuse auto 
keep foreign weight 

describe foreign 
label list origin 

replace weight = . if foreign == 0 

list in 1/15 
list in 1/15, nolabel 

describe zeigt den Wert Label mit einer Variablen zugeordnet. label list kann den Inhalt eines bestimmten Wertelabels anzeigen.