fredag 18 december 2020

18 dec - skapa subset av variabler och skapa nya rader

 Hej, jag fick 3 svar från er läsare efter inlägget den 11 dec - tack snälla Robert, Jonas och Victoria som snabbt svarade på frågan! (Frågan gällde alltså hur man skapar nya rader (cases) i SPSS på ett effektivt sätt, som ni ska få ta del av i Nr 2 nedan). 

Så idag tar jag upp dessa 2 frågor:

Nr 1. Hur skapar man subset av variabler, när man har 400 variabler blir det så mycket letande i filen?

Nr 2. Fortsättning från 11 dec: Hur skapar man 1000 nya rader i ett tomt dataset, med hjälp av syntax?


Nr 1. Hur skapar man subset av variabler, när man har 400 variabler blir det så mycket letande i filen?

Svar: Man utnyttjar 2 kommandon som du hittar i utilitiesmenyn. Först väljer du "Define Variable Sets" och sen väljer du "Use Variable Sets". 


Så kan det tex se ut så här i variabelfönstret, dvs variabler göms tillfälligt:


Detsamma gäller i dialogboxarna att du ser endast det som du lagt i ditt subset:



Se min inspelning i detta blogginlägg:

Klicka här för att komma till blogg och inspelning av subset



Nr 2. Hur skapar man 1000 nya rader i ett tomt dataset, med hjälp av syntax?

Svaren jag fick liknade varandra så jag tar ett av dem.

1. Öppna ett tomt datafönster.

2. Kopiera av texten nedan och lägg in i ett syntaxfönster. Markera texten och kör kommandot (genom att klicka på den gröna triangeln i tool bar). 


INPUT PROGRAM.

LOOP #I=1 TO 1000.

COMPUTE ID=1+#I-1.

END CASE.

END LOOP.

END FILE.

END INPUT PROGRAM.

PRINT FORMATS ID (F4).

EXECUTE.

 

3. Här ser ni början och slutet på den nyskapade filen, som skapats från ett tomt datafönster.

    


Ha en skön jul-ledighet! 

Gunilla


fredag 11 december 2020

11 dec skapa slumptal och 2 randomiserade grupper

 Hej, jag fick frågan hur man skapar slumptal och det är en enkel sak kommer ni snart se. Men i frågan ingick också att skapa 1000 nya individer med dessa slumptal, och där fick jag problem. Kanske någon känner till hur man via macron/loop-kommandot får till detta ?

Jag delar upp det här inlägget i 3 delar.

Del 1. Skapa 1000 nya cases

Del 2. Skapa slumptal

Del 3. Slumpa ut 2 grupper (testgrupp och kontrollgrupp)


Del 1: Skapa 1000 nya cases

Eftersom jag inte minns hur man gör detta med syntax (det ska gå) så gör jag på mitt "ful-sätt" men som ändå funkar: jag skapar dessa 1000 cases i Excel och läser in Excelfilen till SPSS. Anledningen till just Excel är för där kan man smidigt skriva in 1,2,3 i en kolumn och sen bara dra i nedre högra hörnet på de cellerna du just skrev in i , och dra sen musen rakt ner så fortsätter Excel att skriva ut en serie så långt du vill dvs fortsätter med 4,5,6,.....1000.



Läs in filen till SPSS på vanligt sätt, File - Open - Data och välj format : Excel.


Så ser det ut så här i SPSS:



Del 2. Skapa slumptal

Nu ska jag randomisera ut värden mellan 0 och 1 och då använder jag compute- kommandot och sen en randomiseringsfunktion som heter UNIFORM 

Kommandot: Transform - Compute

Den nya slumpvariabeln kallar jag för rand


Alternativt: Syntaxen (om du föredrar att använda det) ser ut så här:

COMPUTE rand = rv.uniform(0,1).

EXECUTE.


Resultatet blir en ny variabel (rand) som består av värden mellan 0 och 1.


Del 3. Slumpa ut 2 grupper (testgrupp och kontrollgrupp)

Om du vill dela upp rand i två lika stora grupper så gör du så här. Enklast är faktiskt att skriva i syntaxform på detta sätt (Rank-kommandot hittar du annars under Transform - Rank Cases): 


RANK rand / ntiles (2) INTO GRUPP.

EXECUTE.

VALUE LABELS GRUPP 1 'Kontrollgrupp' 2 'Testgrupp'.


Och resultatet blir nu en ny variabel: Grupp som består av hälften utslumpade till kontrollgrupp och hälften utslumpade till testgrupp



Trevlig helg! 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...