In Datumsvariable Typ hh:mm parsen aus numerischer Variable?

Alles rund um SPSS Syntax und Programmierung.

In Datumsvariable Typ hh:mm parsen aus numerischer Variable?

Beitragvon miner » Fr 27. Mär 2020, 16:03

Hallo,

ich habe eine Datumsvariable vom Typ yyy-mm-dd-hh-mm-ss.

Aus dieser Variablen benötige ich nur die Uhrzeit, folglich habe ich die Urzeit extrahiert und in eine neue Variable UHRZEIT_EXTRAHIERT geschrieben, mit diesem Befehl:

Code: Alles auswählen
compute Uhrzeit_extrahiert = xdate.time(OpenTime).
execute.


Als Ergebnis habe ich dann eine numerische Variable UHRZEIT_EXTRAHIERT mit einem Integer-Wert. Händisch (also in der Variablenansicht habe ich dann für UHRZEIT_EXTRAHIERT den richtigen Variablentyp eingestellt (hh:mm oder hh:mm:ss) und die Variable enthält auch nach dem Ändern des Typs noch den richtigen Wert. Schöner und eleganter wärs allerdings, wenn ich die numerische Variable UHRZEIT_EXTRAHIERT mit einem Syntaxbefehl in eine Datumsvariable vom Typ hh:mm oder hh:mm:ss parsen könnte.

Oder, wenn ich den Befehl xdate.time bzw. compute dazu bringen könnte, dass er nicht nur die Uhrzeit_extrahiert, sondern die Zielvariable gleich im richtigen Format (eben eine Datumsvariable vom Typ hh:mm oder hh:mm:ss) anlegt.

Dann hätte man auch gleich was für den Klimaschutz getan (der PC-Prezessor müsste die Variable nicht mehr "mühsam" von numerisch zu Datum parsen und könnte somit etwas Strom sparen! ;) ;) ;))

Bisher habe ich allerdings noch keine Lösung gefunden.

Ich freue mich über jeden Hinweis oder über jeden Tipp! :)

Besten Dank und Grüße,
Miner
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post

Re: In Datumsvariable Typ hh:mm parsen aus numerischer Varia

Beitragvon miner » So 29. Mär 2020, 19:47

Habe mittlerweile eine Lösung gefunden, die eleganter ist als die in meinem EP (weil ich alles über die Syntax machen will), wenn auch noch nicht perfekt.

Die Lösung erforder es, dass die Quellvariable als String-Variable vorliegt. Wenn Sie als Datums-Variable vorliegt, muss man Sie halt erst in eine String-Variable umcodieren. Das ist nicht anz so elegant, weil die Zielvariable ja wieder eine Datumsvariable sein wird, aber eine bessere Möglichkeit habe ich noch nicht gefunden.

Das parsen der Datums-Variable in eine String-Variable müsste mit ALTER TYPE gehen (habe es nicht ausprobiert). Evtl. könnte auch einfach nur eine String-Variable neu angelegt werden und die Werte der Datums-Variablen der String Variablen zugewiesen werden.

Aus der String-Variablen werden dann die Werte die man haben will ausgelesne und in eine neue Variable geschrieben. Es gibt in SPSS doch recht viele Möglichkeiten, was man mit Datums- und Zeitvariablen alles anstellen will. Bei Google findet man recht viele Beispiele (bislang aber keine, die zu 100 % auf meinen Fall gepasst hätten), mittlerweile habe ich aber herausgefunden, dass es für den Fall in SPSS einen Assistenten gibt: TRANSFORMIEREN --- ASSISTENT FÜR DATUM UND UHRZEIT.

Könnte sein, dass der Assistent keine Wünsche offen lässt, was die Bearbeitung von Datums- und Zeitvariablen in SPSS anbelangt. Für den vorliegenden Fall habe ich mit dem Assistenten den u.s. Syntax-Schnippsel erstellt, mit dem ich aus der Quellvariable (eine ursprüngliche Datums-Variable, geparst in eine String-Variable, mit dem Format yyyy-mm-dd-hh-mm-ss). Es wird daraus die Uhrzeit im Format hh:mm:ss ausgelesen und in eine neue Variable vom Typ Datum geschrieben.

hier noch der Syntax-Schnippsel (vielleicht kann man in auch als Vorlage zu Erstellung/Anpassung eigener Syntax-Schnippsel verwenden):


Code: Alles auswählen
* Assistent für Datum und Uhrzeit: test4.
COMPUTE test4=number(OpenTime, YMDHMS19).
VARIABLE LABELS test4 'Open Time'.
VARIABLE LEVEL  test4 (SCALE).
FORMATS test4 (YMDHMS19).
VARIABLE WIDTH  test4(19).
EXECUTE.
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron