ich habe ein etwas eigenartiges Problem mit Stata. Ich möchte eine neue variable erstellen und zu diesem Zweck einfache Rechenoperationen (*, /) durchführen. Zwar erstellt Stata mir ohne Fehlermeldung die neue Variable, aber der Wert stimmt einfach nicht. Ich kann auch nicht nachvollziehen, was genau falsch läuft.
Hier eine Zeile aus meinem Datensatz:
- Code: Alles auswählen
countryname countrycode populationtotal gdpgrowth gdppc internetusersper100peoplenew users
Albania ALB 3150143 3,5 3764,326348 45 6426292
Wie users berechnet wird, ist aus dem do file Ausschnitt erkennbar:
- Code: Alles auswählen
insheet using "Daten\Data_Worldbank.csv", delimiter(";")
foreach var of varlist gdpgrowthannual gdppercapitacurrentus internetusersper100people {
encode `var' , generate(`var'new)
drop `var'
}
rename gdpgrowthannualnew gdpgrowth
rename gdppercapitacurrentusnew gdppc
generate users=internetusersper100peoplenew*populationtotal/100
display internetusersper100peoplenew[2]*populationtotal[2]/100
//correct would be 1.417.564,35 instead of 6.426.292
Ich kann einfach nicht nachvollziehen, was genau Stata da macht. Aufgrund der Encodierung sollte die Berechnung doch eigentlich kein Problem sein, oder? gdpgrowth, gdppc und internetusersper100people sind jeweils vom Typ "long".
Ich hoffe, ihr könnt mir helfen. Meinen Datensatz könnt ihr hier finden: https://www.dropbox.com/s/02cpn0tsqk6wt ... ldbank.csv
Edit: Eben habe ich den Befehl
- Code: Alles auswählen
generate users=internetusersper100peoplenew
ausprobiert. Für die oben bereits gezeigte Zeile ergibt sich bei internetusersper100peoplenew=45 ein users Wert von 204. Das verwirrt mich jetzt noch mehr...