Formel zum Extrahieren des Datums aus der Zeichenspalte<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, ich benutze SAS EG und JMP. In der Vergangenheit habe ich Base SAS für PC verwendet. Ich bin frustriert darüber, wie scheinbar einfache Aufgaben in JMP keine einfachen Lösungen haben. Sehen Sie sich nun zum Beispiel die angehängte jmp-Tabelle an, die eine Spalte mit Zeichendaten enthält. Ich muss eine Spalte mit den Daten als numerische Variable erstellen. Bei SAS würde ich schreiben:
date=input(substr("Spalte 1",1,10),ddmmyy10.);
aber wie soll die formel für eine neue spalte dafür lauten.
Es tut mir leid, so einfache Fragen stellen zu müssen, aber . . .
Vielen Dank im Voraus
Poul Ravn Sörensen
Betreff: Formel zum Extrahieren des Datums aus der ZeichenspalteAuch das Beispiel von PMroz funktionierte auf meinem PC nicht (JMP 9.0.3, Win XP). Die date4-Formel von MS funktioniert jedoch. Der Vorschlag von Jeff Perkinson, dies in der Tabelle selbst zu tun, widerspricht der Idee, dies in Skripten zu tun. Ich ziehe es vor, eine 'Toolbox' mit Formeln zu haben, die solche Dinge tut, damit ich mich nicht jedes Mal daran erinnern muss, wie es geht, wenn ich eine Tabelle habe.
Danke an alle
Poul
Betreff: Formel zum Extrahieren des Datums aus der ZeichenspalteWie sich herausstellt, ist das zweite Argument von Informat() optional. Ohne sie untersucht JMP das erste Argument und versucht, das Format selbst herauszufinden.
Bei diesem Beispiel hat JMP die Datumsangaben mit den Punkten als Datumstrennzeichen erkannt.
T = "12.10.2012 10:22:31" ;
Datum1 = Informieren ( T ) ;
Zeigen ( Datum1 ) ;
/*:
Datum1 = 10. Dezember 2012: 10: 22: 31;
Zurück zur ursprünglichen Frage: Ich würde den Datentyp der Spalte mithilfe von „Format“ und „Input Format“ von „Character“ in „Numeric“ ändern, um die Werte automatisch in JMP-Datetime-Werte zu konvertieren.

Wenn Sie dann nur den Datumsteil des datetime-Werts möchten, können Sie die Tageszeit abziehen:
:Spalte 1 - Uhrzeit ( :Spalte 1 )
-Jeff
Betreff: Formel zum Extrahieren des Datums aus der ZeichenspalteDie von JMP erkannten Datums- oder Datums-/Uhrzeitformate scheinen sich je nach Lokalisierung (von JMP oder OS) zu unterscheiden. Beispielsweise funktionieren Formate mit "/" und ":" wie im Beispiel von PMros nicht auf meinem Computer (englisches JMP10, schwedisches Mac OS X).
Die folgenden Beispiele veranschaulichen einige der Vorbehalte. Der erste wird nicht erkannt, während der zweite mit Bindestrichen und Punkten wie erwartet funktioniert (aber hier einen "doppelten Ersatz" erfordert).
Das dritte und vierte Beispiel veranschaulichen eine potenzielle Mehrdeutigkeit des Datums: Ohne ein Formatargument geht JMP von m/d/y aus, was je nach Datenquelle falsch sein kann oder nicht.
Was ist die beste Scripting-Praxis, um mit diesem Durcheinander von Datumsformaten fertig zu werden?
T = "12.10.2012 10:22:31" ;
Datum1 = Informieren ( Ersatz ( T , "." , "/" ) , "d/m/yh:m:s" ) ;
Datum2 = Informieren ( Ersatz ( Ersatz ( T , "." , "-" ) , ":" , "." ) , "dmy hms" ) ;
Datum3 = Informieren ( Substr ( Ersatz ( T , "." , "-" ) , 1 , 10 ) , ) ;
Datum4 = Informieren ( Substr ( Ersatz ( T , "." , "-" ) , 1 , 10 ) , "dmy" ) ;
Zeigen ( Datum1 , Datum2 , Datum3 , Datum4 ) ;
/*:
Datum1 = .;
Datum2 = 12.Okt.2012:10:22:31;
Datum3 = 10. Dezember 2012;
Datum4 = 12. Oktober 2012;
Betreff: Formel zum Extrahieren des Datums aus der ZeichenspalteVerwenden Sie die Informationsfunktion in einer Formelspalte.Der Trick besteht darin, das Datumsformat in ein Format zu ändern, das JMP erkennt, indem Sie das " . "Zeichen zu" / ".
dt = Neue Tabelle ( "Datum als String-Daten" ,
Zeilen hinzufügen ( 10 ) ,
Neue Spalte ( "Spalte 1" ,
Charakter ,
Nominal ,
Werte einstellen (
{ "19.10.2012 14:26:49" , "15.10.2012 9:28:57" , "15.10.2012 9:22:13" ,
"09.10.2012 11:15:18" , "09.10.2012 11:07:14" , "28.09.2012 15:30:41" ,
"28.09.2012 13:00:18" , "27.09.2012 15:43:07" , "27.09.2012 15:42:16" ,
"27.09.2012 15:41:12" }
)
)
) ;
dt << Neue Spalte ( "Spalte 2" ,
Numerisch ,
Kontinuierlich ,
Format ( "d/m/yh:m:s" , 22 , 0 ) ,
Eingabeformat ( "d/m/yh:m:s" , 0 ) ,
Formel (
Informieren ( Ersatz ( : Spalte 1 , "." , "/" ) , "d/m/yh:m:s" ) ;
) ,
) ;