Hej datum ställer till det eftersom tidräkningen startar olika i olika programvaror.
Om du läser in en CSV-fil kan det hända att datumet blir STRING-format. Det slipper du om du omvandlar CSV-filen till Excelformat innan du läser in den till SPSS (se tidigare inlägg Problem CSVfil och datum).
Om det ändå inte fungerar utan blir som i bilden ovan, så går det att göra om STRING-variabeln till ett datum - men måste göras i flera steg, först skapa ÅR, MÅNAD och DAG som 3 nya variabler och sen sätta ihop dessa via DATE AND TIME WIZARD.
Antingen gör du det via SYNTAX eller också via MENYER, du får båda alternativen nedan men SYNTAXEN tar bara några sekunder medan menyerna tar 10-15 minuter.
Skapa Datum från STRING via SYNTAX
För er som gått min introduktionskurs i SYNTAX så kan ni köra alla följande lila-färgade rader ner till bilden, så går det på några sekunder.
STRING ÅR (A4) MÅN (A2) DAG (A2).
COMPUTE ÅR=CHAR.SUBSTR(Exceldatum,1,4).
COMPUTE MÅN=CHAR.SUBSTR(Exceldatum,6,2).
COMPUTE DAG=CHAR.SUBSTR(Exceldatum,9,2).
EXECUTE.
ALTER TYPE ÅR(F4.0) MÅN(F2.0) DAG(F2.0).
FORMATS ÅR(F4.0) MÅN(F2.0) DAG(F2.0) .
EXECUTE.
* Date and Time Wizard: Datum.
COMPUTE Datum=DATE.DMY(DAG, MÅN, ÅR).
VARIABLE LABELS Datum "".
VARIABLE LEVEL Datum (SCALE).
FORMATS Datum (SDATE10).
VARIABLE WIDTH Datum(10).
EXECUTE.
***************************************************************************
Skapa Datum från STRING via MENYER
Ni som inte vågat använda SYNTAX ännu får utnyttja kommandona istället, se nedan instruktion i 2 steg
Steg 1: Skapa ÅR MÅNAD och DAG
Kommando: Transform - COMPUTE
och sen leta upp funktionen STRING och SUBSTRING.
Klicka sen på knappen där röda pilen syns i bilden ovan och gör som nedan:
SUBSTRING plockar ut tecken från en STRING-variabel. Så ÅR i exemplet ovan, plockas från stringvariabeln Exceldatum från position 1 och väljer 4 tecken.
Gör samma kommando för de andra 2 variablerna månad och dag också, fast där blir det förstås andra positioner man plockar från (månad position 6 och 2 tecken).
Gör sen om dessa 3 variabler till numeriska (från variable view).
***************************************************************************
Steg 2: Omvandla till DATUM
Använd kommandot Transform - Date and Time Wizard:
Lägg in de 3 (numeriska) variablerna i varsin ruta som nedan:
Hitta på ett variabelnamn (Datum) och sen väljer du vilket datumformat du vill ha (jag valde yyyy/mm/dd)
***************************************************************************
OBS, om dina substring-variabler ÅR, MÅNAD och DAG ser konstiga ut så kan det bero på tomrum i början och slutet:
För att slippa få med tomrum innan och efter kan man behöva använda TRIM (LTRIM och RTRIM) på strängvariabeln innan man startar allt.