Hallo,
ich möchte das Alter meiner Probanden ermitteln. Der Geburtsmonat- und Jahr liegen mir in 5-6 stelligen Zahlen in SPSS vor (also 81951 für Aug 1951). Das Erhebungsdatum in der üblichen Formatierung des Datums. Wie formatiere ich das jetzt so um, dass ich einfach das Alter zum Erhebungszeitpunkt ermitteln kann? Es sind über 5000 Probanden.
Vielen Dank schonmal.
Zeichenfolge
-
- Beiträge: 2734
- Registriert: 01.02.2018, 10:45
Re: Zeichenfolge
Hallo Kubi,
oh hell no!!! ..aber es geht!
du fügst eine neue Variable (besser gesagat eine Konstante)
hinzu die den Erbebungszeitpunkt darstellt.
Dann gehst du über Transformieren Variable berechnen zur Funktionsgruppe
Datumsaritmetik machst Datediff.
Du ziehst die beiden Zeitpunkten voneinander ab.
Vorher musst du aber noch diese merkwürdige Formatierung des Geburtsdatum
in ein regulären date format umwandeln..
erstmal zwei neue Variablen erstellen, nur mit dem Jahr und eine nur mit dem Monat!!
Das hab ich nur händisch gemacht, vielleicht mit 10000 dividieren und dann trennen
vor dem Komm und danach, keine Ahnung ob das klappt.
über Befehl trunc z.B.
Oder das Datum in einen Text umwandeln und dann auslesen über
Befehl SUBSTR(string,1)
klapt nicht ganz, weil einmal 6 und einmal 5 stellig (was ein scheiß)
vorher vielleicht
LTRIM(VAR00001) Leerstellen entfernen
und die neue Zielvariable auf string stellen
dann über Datumserstellung und über Befehlt date.moyr eine Zahl erzeigen
diese dann über Änderung des Variablentyps in ein date umwandeln.
hat bei mir geklappt!
https://ibb.co/nPn410L
!!! Da kann viel schief gehen bei!!!
Man kann auch daten verlieren !!
Also immer alle Daten gut sichern und erstmal an einer Copie der daten üben!
gruß
dutchie
oh hell no!!! ..aber es geht!
du fügst eine neue Variable (besser gesagat eine Konstante)
hinzu die den Erbebungszeitpunkt darstellt.
Dann gehst du über Transformieren Variable berechnen zur Funktionsgruppe
Datumsaritmetik machst Datediff.
Du ziehst die beiden Zeitpunkten voneinander ab.
Vorher musst du aber noch diese merkwürdige Formatierung des Geburtsdatum
in ein regulären date format umwandeln..
erstmal zwei neue Variablen erstellen, nur mit dem Jahr und eine nur mit dem Monat!!
Das hab ich nur händisch gemacht, vielleicht mit 10000 dividieren und dann trennen
vor dem Komm und danach, keine Ahnung ob das klappt.
über Befehl trunc z.B.
Oder das Datum in einen Text umwandeln und dann auslesen über
Befehl SUBSTR(string,1)
klapt nicht ganz, weil einmal 6 und einmal 5 stellig (was ein scheiß)
vorher vielleicht
LTRIM(VAR00001) Leerstellen entfernen
und die neue Zielvariable auf string stellen
dann über Datumserstellung und über Befehlt date.moyr eine Zahl erzeigen
diese dann über Änderung des Variablentyps in ein date umwandeln.
hat bei mir geklappt!
https://ibb.co/nPn410L
!!! Da kann viel schief gehen bei!!!
Man kann auch daten verlieren !!
Also immer alle Daten gut sichern und erstmal an einer Copie der daten üben!
gruß
dutchie
-
- Beiträge: 9
- Registriert: 08.07.2024, 20:09
Re: Zeichenfolge
Danke Dutchie! Ich versuche es mal und sage dann Bescheid ob es klappt:)
-
- Beiträge: 9
- Registriert: 08.07.2024, 20:09
Re: Zeichenfolge
Hallo Dutchie,
ich habe es jetzt hinbekommen, dass ich das Geburtsdatum und das Erhebungsdatum im gleichen Format vorliegen habe mit tt-mm-jjjj. Möchte ich nun aber ganz normal über DATEDIFF das Alter bestimmen, kriege ich folgende Meldung:
Falscher Variablenname: entweder ist der Name länger als 64 Zeichen oder er wird nicht durch einen vorherigen Befehl definiert. Beides sollte aber eigentlich nicht zutreffen. Du hast da keine Idee oder?
Liebe Grüße,
Kubi
ich habe es jetzt hinbekommen, dass ich das Geburtsdatum und das Erhebungsdatum im gleichen Format vorliegen habe mit tt-mm-jjjj. Möchte ich nun aber ganz normal über DATEDIFF das Alter bestimmen, kriege ich folgende Meldung:
Falscher Variablenname: entweder ist der Name länger als 64 Zeichen oder er wird nicht durch einen vorherigen Befehl definiert. Beides sollte aber eigentlich nicht zutreffen. Du hast da keine Idee oder?
Liebe Grüße,
Kubi
-
- Beiträge: 2734
- Registriert: 01.02.2018, 10:45
Re: Zeichenfolge
Hallo Kubi
COMPUTE wewe = DATEDIFF(VAR00001,VAR00002,"day") .
EXECUTE .
day (oder was auch immer ) in anführungszeichen!
gruß
dutchie
COMPUTE wewe = DATEDIFF(VAR00001,VAR00002,"day") .
EXECUTE .
day (oder was auch immer ) in anführungszeichen!
gruß
dutchie
-
- Beiträge: 9
- Registriert: 08.07.2024, 20:09
Re: Zeichenfolge
Hallo dutchie,
die Anführungszeichen fehlten gestern. Vielen lieben Dank!!
Liebe Grüße,
Kubi
die Anführungszeichen fehlten gestern. Vielen lieben Dank!!
Liebe Grüße,
Kubi