torsdag 25 mars 2021

26 mars - byta ut konstiga tecken med syntax

Har det hänt att ni fått en datafil som innehåller en massa märkliga tecken i text-variablerna? 

Det kan hända om man har fått filen från en annan databas där SPSS och databasen inte förstår varandras språk riktigt. 

Här är ett exempel hur det kan se ut:


Nu ska jag visa hur en syntax kan se ut, och den syntaxen kan man fylla på med fler konstiga tecken, allteftersom man tar emot datafiler från olika system med olika tecken. 

Du kopierar bara av de konstiga tecknen från din textvariabel och lägger in dem i syntaxen.

Som ni ser i syntaxen nedan så har till exempel den här användaren stött på 2 former av bokstaven å (lilla å). Dels kan bokstaven å ha tecknet: Ã¥ eller
det här tecknet: ÃƒÂ¥

Det spelar ingen roll om du har för många tecken i syntaxen, för SPSS letar bara upp dem den hittar och ersätter dem med rätt bokstav, å, ä, ö, Å, Ä eller Ö. 

Syntaxen ser ut så här och kommer ersätta konstiga tecken i 3 variabler som heter textkommentar1, textkommentar2 och textkommentar3:


Syntaxen körs som vanligt genom att markera texten och trycka på den gröna triangeln i tool bar. Är du ovan med programmering och syntaxer, rekommenderar jag en mycket uppskattad nybörjarkurs som jag håller online via Statistikakademin.:


Resultat:



Trevlig helg och lycka till med SPSS!

Gunilla Rudander



torsdag 18 mars 2021

19 mars - göra missing definitioner för STRING-variabler

 Hej, string-variabler (dvs såna som innehåller bokstäver) är knepiga att hantera i SPSS. I det här fallet gällde det bortfallskodningar.


Problemet är att om något är blankt i en string-variabel så uppfattar SPSS detta som en giltig text dvs mellanslag. Hade det varit blankt i en numerisk variabel så uppfattar SPSS denna som SYSMIS, dvs system-bortfall på svenska.

Se frekvenstabellen på ovanstående variabel, vi har 8 blanka och 11 N/A, men de uppfattas som giltiga i frekvenstabellen. Det ska vi ändra på sen:

Du kan ändra detta i Variable View, men om det handlar om många liknande variabler så rekommenderar jag att använda kommandot Data - Define Variable Properties

Fördelen är att SPSS känner av alla befintliga värden (Values) och du kan enkelt kryssa i "Missing"-rutorna på de ställen du vill att SPSS hanterar värdet som missing. (Se nedan):


Fördelen är att du också kan klistra in kommandot som syntax (Paste) vilket underlättar för dig om du jobbar mycket med datapreparering.

Här kan jag rekommendera syntaxkursen som fokuserar på att preparera data effektivt via syntax:

Länk till syntaxkursen på Statistikakademin (nu även online)

När kommandot ovan körts (antingen via OK eller Paste) så får du en frekvensanalys som tar hänsyn till detta:


Gunilla

torsdag 11 mars 2021

12 mars - skapa en ålder av 2 inmatade åldrar

 Veckans fråga handlar om hur man skapar en åldersvariabel från ett dataset som matats in på det här sättet:


Användaren vill att nya åldersvariabeln ska fyllas i med den ålder som finns i någon av de 2 ålderskolumnerna.

Men om det finns två åldrar ifyllda, ska den åldern från journalen fyllas i dvs variabeln ålder_journal fyllas i (det är den korrekta). Så för individ 8 och 9 vill vi ha åldern 27 och 41 ifylld i den nya variabeln.

Vi kommer göra kommandot Compute TVÅ gånger.

Kommando:

Transform - Compute

Skriv in det nya variabelnamnet, här Final_ålder: och lägg in mors_ålder i andra boxen.



Längst ner till vänster klickar du på if-knapen: 

Och sen klickar du på "include if cases satisfies condition:" och skriver in att mors_ålder ska vara större än 0 dvs ha ett giltigt värde. (Då bortser SPSS från bortfallet).



Resultatet ser ut så här: Vi har fått in mors_ålder i nya variabeln, men om du ser de röda markeringarna så har vi fått in åldern 28 och 40 fast vi velat haft mors_ålder_journal istället (27 och 41). Men det kommer strax lösa sig!


Vi ska nämligen göra samma kommando igen och då kommer det förra skrivas över. Så upprepa kommandot igen:

Transform - Compute

Fyll nu i mors_ålder_journal istället på Numeric Expression- rutan.


Klicka på If knappen igen: 
Men nu ändrar du till mors_ålder_journal > 0 istället.



Du kommer få upp en varning att SPSS kommer ersätta det förra kommandot, men du klickar på OK. Tack vare if-satserna så kommer rätt delar att ersättas.



Eftersom mors_ålder_journal var den sista kolumnen vi hämtade ålder från, så löser sig individ 8 och 9 automatiskt - precis som vi ville. Det är åldern från journalen som ska vara gällande om det finns 2 åldrar angivna.


Det var dagens svar på en fråga.

Trevlig helg!

Gunilla




torsdag 4 mars 2021

5 mars - mer lättläst korrelation med nedre diagonalen och pivotering

 Hej, Av en ren slump märkte jag att de nu lagt in en extra kryssruta i korrelationskommandot, så man slipper få den övre diagonalen i korrelations-matrisen.

Kommando: Analyze - Correlate - Bivariate 

Lägg in variablerna i högra rutan som vanligt.

Kryssa för ett extra val (se nedan, röda strecket visar):




Då kommer korrelationsmatrisen bli så här lättläst:

Vill du få matrisen ännu mer lättläst?
Ja, då kan du pivotera tabellen.

Dubbelklicka på tabellen.
Högerklicka och välj "Pivoting Trays" från Popupmenyn.

Dra upp "Statistics"-delen till Layer (se pilen).

Så hamnar Statistics i lager, och du kan bläddra mellan 3 lager: korrelationskoefficienter, Antal dvs N och slutligen signifikansvärdet.

Här nedan är det första lagret valt dvs Pearson Correlation:

När du är klar klickar du utanför tabellen så kommer du ur editeringsläget och tillbaks till själva outputfönstret igen. 

Tack för titten! 

Gunilla


Manualer att ladda ner

SPSS manualer går att ladda ner som PDF-filer.  Länken : https://www.ibm.com/support/pages/ibm-spss-statistics-29-documentation#en Vill du h...