Skapa en datamängd och importera data

av Anders Sundell

Ofta när man jobbar med Stata använder man sig av en färdig datamängd, med data som någon annan har samlat in och sammanställt. Ibland samlar man själv in sin egen data, och ibland använder man sig av data som andra samlat in men som inte finns i Stata-format.

I de två sista fallen behöver man då antingen sätta ihop sin egen datamängd eller importera datan in i Stata.

Skapa egen datamängd från scratch

Att skapa sin egen datamängd är enkelt. Man klickar bara på knappen "Data redigerare," en symbol med en penna på. Sen är det bara att börja skriva in sin data i cellerna, eller klistra in den från till exempel Excel.

Det första värdet man skriver in avgör vilken typ av variabel det blir. Är det en siffra blir det en numerisk variabel, och är det en bokstav blir det en textvariabel, en "string variable". Man kan inte blanda siffror och text. Gör man det kommer båda behandlas som text, och siffrorna går då inte att analysera.

Varje analysenhet - det vi jämför - ska ha en egen rad i datamängden. Är det länder har varje land en egen rad. Är det personer har varje person en egen rad, och så visdare.

Varje variabel får en egen kolumn. I QoG-datamängden, som används i många exempel här, är analysenheterna länder, och landegenskaperna är variabler.

Nya variabler man skapar får namnet "var1", "var2" ooch så vidare. Om man till exempel vill att den ska heta "population" kan man döpa om variabeln genom att skriva:

In [8]:
ren var1 population

"ren" är här en förkortning för "rename". Och svårare än så är det inte att göra sin egen datamängd! Man behöver bara ha lite tålamod när man skriver in datan.

Importera data till Stata

En ganska vanlig situation är att det finns data någonstans, men att den inte är i Stata-format. Ofta är den i Excel eller .csv-format.

När den är i Excel brukar jag ofta skapa ett tomt dataset (genom att skriva clear), och edan bara markera data och klistra in den dataredigeraren. Man kan då också få med rubrikerna på variablerna, om sådana finns i Exceldokumentet. Ibland kan det dock krångla, och Stata gör alla variablerna till text. Om det händer, markera allt utom rubrikerna i Excel, och klistra in. Döp sedan om variablerna till rätt namn manuellt med hjälp av rename-kommandot.

Om det är stora mängder data kan det dock krångla med utklippsfunktionen. Då kan det vara bättre att spara Excel-datan i .csv-format. Csv står för "comma separated values" och är textfiler, där datamatrisen finns beskriven. Variabelvärdena skiljs åt med hjälp av kommatecken eller semikolon.

Många statistiktjänster tillhandahåller data i CSV-format. Från SCB.se kan man till exempel ladda ned i både Excel- och CSV-format.

för att ladda in sådan data använder man sig av kommandot insheet. Vi ska nu prova att ladda in data över befolkningen i Sveriges kommuner. <a href = "http://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/BefolkningNy/?rxid=2a23ae92-c010-466a-9444-37e7aed8ab5c" target=_blank>Den finns att hämta hos SCB</a>. Välj alternativet "kommaavgränsad utan rubrik", ladda ned filen och ge den namnet befolkning.csv. Jag har lagt den i min projektmapp, i en undermapp som heter "data".

In [27]:
insheet using "data/befolkning.csv", clear names
(2 vars, 290 obs)

Jag tog med två options, clear och names. Clear betyder att allt som var inladdat i Stata först skulle rensas ut innan den nya datan laddades in.

Om det hade varit någon annan avgränsare än kommatecken i filen hade vi kunnat ange det med några options. Är det tabb-separerad data lägger vi bara till option "tab". Om det är semikolon får vi lägg till option delimiter(";").

Names betyder att variabelnamnen var angivna på den första raden i .csv-filen. Vi kan nu titta på de första fem raderna i filen genom att skriva:

In [28]:
list * in 1/5
     +-----------------------------+
     |              region      v2 |
     |-----------------------------|
  1. | 0114 Upplands V�sby   44605 |
  2. |     0115 Vallentuna   33175 |
  3. |      0117 �ster�ker   44130 |
  4. |         0120 V�rmd�   43444 |
  5. |       0123 J�rf�lla   76453 |
     +-----------------------------+

Vi ser att kommunerna står listade, och att befolkningen finns angivet i variabeln "v2". Den kan vi byta namn på, med rename:

In [29]:
ren v2 befolkning2017
In [30]:
list * in 1/5
     +--------------------------------+
     |              region   bef~2017 |
     |--------------------------------|
  1. | 0114 Upplands V�sby      44605 |
  2. |     0115 Vallentuna      33175 |
  3. |      0117 �ster�ker      44130 |
  4. |         0120 V�rmd�      43444 |
  5. |       0123 J�rf�lla      76453 |
     +--------------------------------+

Ett problem är dock att å, ä och ö har blivit fel i inläsningen. Så är det ofta med de svenska tecknen, vilket är en anledning till att jag ofta skriver variabelnamn på engelska och försöker undvika specialtecken.

I det här fallet kommer dock felet (vad jag kan se) från SCB. Filerna saknar å ä och ö vid nedladdningen, vilket skulle kunna vara ett skäl att ladda ned i Excelformat, och sedan föra in datan därifrån till Stata.