Changer la colonne de caractères en colonne de date<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde,
supposons que nous ayons un tableau avec une colonne de type caractère avec des dates au format "dmy". Exemple donné :
| Dates des personnages |
|---|
| 05.08.2015 |
| 17.03.2016 |
| 12.05.2016 |
Je souhaite maintenant convertir les dates de caractères en dates numériques. Je sais qu'il s'agit d'un problème courant et qu'il y a beaucoup de choses à lire. Cependant, ce que je ne comprends pas, c'est ceci :
Si je clique avec le bouton droit sur la colonne, que j'arrive aux informations sur la colonne, que je change le type de données en numérique, puis que je sélectionne "dmy" comme format, tout va bien. Toutes les dates sont converties correctement. Mais si j'exécute le script suivant :
Column("Dates des caractères") << Type de données (numérique) << Informat("dmy") << Format("dmy");
ou
Colonne ("Dates des caractères") << Type de données (numérique) << Format ("dmy");
seules les 1ère et 3ème lignes sont converties correctement. La 2ème ligne de notre exemple de colonne est ensuite nulle, probablement parce que le format est interprété à tort comme "mdy".
Comment est-il possible que ces approches (script/manuel) conduisent à des résultats différents ? Et que puis-je faire pour que l’approche script fonctionne ?
Merci!
Re : Changer la colonne de caractères en colonne de dateJMP n'utilise pas toujours le format mdy dans informat.
Il utilise le format mdy si la première date de la première ligne correspond au mdy, quel que soit le contenu des lignes restantes.
Si la première ligne ne peut correspondre qu'au format dmy, ce format est utilisé à la place. Ainsi, lors des tests, tout peut sembler bien jusqu'à ce que la ligne importée tienne au format mdy... Aux États-Unis, ce n'est bien sûr pas un problème puisque toutes les dates sont en mdy.
C'est toujours le cas dans JMP 15.1.0 et j'espère que cela sera corrigé un jour car il est toujours difficile de travailler avec des dates importées dans JMP, bien qu'il y ait eu quelques améliorations dans les importations .csv et Excel.
Re : Changer la colonne de caractères en colonne de dateMerci MS. La "Date locale" a fait l'affaire. Cependant, il existe toujours la boucle For Each. Mais je paierai pour trouver une solution différente.
Entre-temps, nous avons compris qu'il est important d'installer le pilote ODBC approprié si vous souhaitez transférer des dates numériques d'une base de données MS SQL vers JMP. Le pilote "SQL Server" ne nous permettait pas d'importer des dates numériques, contrairement au "ODBC Driver 11 for SQL Server".
Re : Changer la colonne de caractères en colonne de dateTrès très gentil
Re : Changer la colonne de caractères en colonne de dateTu pourrais essayer le Date de lieu format.
Colonne ("Dates des caractères") << Type de données (numérique) << Format ("Date locale");
Re : Changer la colonne de caractères en colonne de dateMerci pour votre réponse Nelson. J'exécute le script et je viens de recevoir des horodatages dans la colonne "dates des personnages". Cependant, je ne comprends pas pourquoi JMP ignore la commande Format. Mon système : JMP 12.2.0 sur Windows 7 en Allemagne (UTC+1 ; dmy).
Actuellement, j'essaie d'éviter les boucles For Each Row pour un script qui convertit automatiquement toutes les colonnes de caractères avec des dates en dates numériques. J'ai une telle solution mais elle est vraiment très lente. D'où ma question ci-dessus.
Re : Changer la colonne de caractères en colonne de dateApparemment, il y a un problème dans JSL pour effectuer correctement la conversion.Il semble toujours utiliser "m/d/y" comme information.Le script ci-dessous fera la conversion
Noms par défaut ici ( 1 ) ;
Essayer ( Fermer ( Tableau de données ( "test" ) , nosave ) ) ;
dt = Nouveau tableau ( "test" ,
Ajouter des lignes ( 3 ) ,
Nouvelle colonne ( "Dates des personnages" ,
Personnage ,
"Nominal" ,
Définir les valeurs ( { "05.08.2015" , "17.03.2016" , "12.05.2016" } )
)
) ;
Pour chaque ligne (
: Dates des personnages = Sous-titre ( : Dates des personnages , 4 , 2 ) || "." ||
Sous-titre ( : Dates des personnages , 1 , 2 ) || "." || Sous-titre ( : Dates des personnages , 7 )
) ;
Colonne ( "dates de personnages" ) << Type de données (numérique) << Format ( "j/m/a" ) ;