2016-07-14 3 views
-1

Ich habe einen Datensatz mit String-Variablen und ich versuche, eine neue Binärvariable basierend auf den ersten zwei Zeichen zu generieren. Alle Strings sind 5 Zeichen lang, aber ich sorge mich nur um die ersten beiden, um zu sortieren.Wie kann ich Variablen basierend auf einem Teil einer String-Variablen sortieren?

Zum Beispiel könnte ich 22001 und 22005 haben. Da beide vom Format 22XXX sind, möchte ich den Wert 1 für beide in der Variablen type_A zuweisen. Und wenn ich 25001 und 25005 habe, da beide nicht die Form 22XXX haben, möchte ich den Wert 0 für beide in der Variablen type_A zuweisen.

+0

sein @ Nick Sie sind nicht dafür, Fragen mit 'In Stata, ...' zu stellen? – radek

+0

Es ist meiner Meinung nach die Site-Richtlinie, keine Sprachen in Titeln zu benennen. Ich kann dafür keine Dokumentation finden, aber (a) Tags sollten ausreichend sein. (B) es ist wichtig, Titel präzise zu halten. –

+0

Wenn Ihre Frage impliziert, dass Sie nach den ersten zwei Zeichen sortieren möchten, dann wird mit 'sort' das erledigt. Es wird auch nach den anderen Charakteren sortieren, aber Sie brauchen sich nicht darum zu kümmern. Sie benötigen zu diesem Zweck keine neue Variable. Aber vielleicht geht es bei Ihrer Frage nicht um einen "strengen" Sinn. Es ist nicht so oder so klar. –

Antwort

1

Dies sollte die Arbeit machen:

clear 
set obs 4 

generate str5 var1 = "22001" in 1 
replace var1 = "22005" in 2 
replace var1 = "25001" in 3 
replace var1 = "25005" in 4 

gen type_A = substr(var1, 1, 2) == "22" 

Bitte beachten Sie, dass Sie Ihr Problem erklären es aussieht wie du dich 22005 als schlüsselt speichern - das ist nicht unbedingt die beste Idee ..

Verwandte Themen