Formule pour extraire la date de la colonne de caractères<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour, j'utilise SAS EG et JMP. Dans le passé, j'utilisais Base SAS pour PC. Je suis frustré de voir à quel point des tâches apparemment simples n'ont pas de solutions simples dans JMP. Maintenant, par exemple, voyez la table jmp jointe qui contient une colonne avec des données de caractères. Je dois créer une colonne avec les dates comme variable numérique. En SAS j'écrirais :
date=input(substr("Colonne 1",1,10),jjmmaa10.);
mais quelle devrait être la formule pour une nouvelle colonne pour cela.
Je regrette de devoir poser des questions aussi simples, mais . . .
Merci d'avance
Poul Ravn Sorensen
Re : Formule pour extraire la date de la colonne de caractèresL'exemple de PMroz ne fonctionnait pas non plus sur mon PC (JMP 9.0.3, Win XP). Cependant, la formule date4 de MS fonctionne. La suggestion de Jeff Perkinson de le faire dans le tableau lui-même va à l'encontre de l'idée de le faire dans les scripts. Je préfère avoir une "boîte à outils" de formules qui fait ce genre de choses, mais je n'ai pas à me rappeler comment le faire chaque fois que j'ai une table.
Merci a tous
Poul
Re : Formule pour extraire la date de la colonne de caractèresIl s'avère que le deuxième argument d'Informat() est facultatif. Sans cela, JMP examinera le premier argument et tentera de déterminer le format par lui-même.
Avec cet exemple, JMP a reconnu les dates avec des points comme délimiteurs de date.
t = "12.10.2012 10:22:31" ;
date1 = Informer ( t ) ;
Montrer ( date1 ) ;
/* :
date1 = 10déc2012:10:22:31 ;
Revenons à la question d'origine, je changerais le type de données de la colonne de caractère à numérique en utilisant le format et le format d'entrée pour convertir automatiquement les valeurs en valeurs JMP Datetime.

Ensuite, si vous ne voulez que la partie date de la valeur datetime, vous pouvez soustraire l'heure de la journée :
:Colonne 1 - Heure de la journée( :Colonne 1 )
-Jeff
Re : Formule pour extraire la date de la colonne de caractèresLes formats de date ou de date/heure reconnus par JMP semblent différer selon les localisations (de JMP ou du système d'exploitation). Par exemple, les formats avec "/" et ":" comme dans l'exemple de PMros, ne fonctionnent pas sur mon ordinateur (JMP10 anglais, Mac OS X suédois).
Les exemples ci-dessous illustrent certaines des mises en garde. Le premier n'est pas reconnu, tandis que le second avec traits d'union et points fonctionne comme prévu (mais nécessitant ici un "double substitut").
Les troisième et quatrième exemples illustrent l'ambiguïté potentielle de la date : sans argument de format, JMP suppose m/d/y, qui peut ou non être incorrect selon la source de données.
Quelle est la meilleure pratique de script pour gérer ce gâchis de format de date ?
t = "12.10.2012 10:22:31" ;
date1 = Informer ( Remplaçant ( t , "." , "/" ) , "j/m/aa:m:s" ) ;
date2 = Informer ( Remplaçant ( Remplaçant ( t , "." , "-" ) , ":" , "." ) , "dmy hms" ) ;
date3 = Informer ( Substr ( Remplaçant ( t , "." , "-" ) , 1 , dix ) , ) ;
date4 = Informer ( Substr ( Remplaçant ( t , "." , "-" ) , 1 , dix ) , "dmy" ) ;
Montrer ( date1 , date2 , date3 , date4 ) ;
/* :
date1 = .;
date2 = 12oct2012:10:22:31 ;
date3 = 10déc2012 ;
date4 = 12 octobre 2012 ;
Re : Formule pour extraire la date de la colonne de caractèresUtilisez la fonction informat dans une colonne de formules.L'astuce consiste à changer le format de date en un format reconnu par JMP, en changeant le " . " caractères à " / ".
dt = Nouveau tableau ( "date en tant que données de chaîne" ,
Ajouter des lignes ( dix ) ,
Nouvelle colonne ( "Colonne 1" ,
Personnage ,
Nominal ,
Définir les valeurs (
{ "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 << Nouvelle colonne ( "Colonne 2" ,
Numérique ,
Continu ,
Format ( "j/m/aa:m:s" , 22 , 0 ) ,
Format d'entrée ( "j/m/aa:m:s" , 0 ) ,
Formule (
Informer ( Remplaçant ( : Colonne 1 , "." , "/" ) , "j/m/aa:m:s" ) ;
) ,
) ;