Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Bonjour à tous.
Dans JMP, je travaille avec des données de stabilité extraites d'un système LIMS. Lors de l'analyse, j'aurais du temps en mois sur l'axe X. Les données extraites se présentent sous deux "formats" temporels : soit sous forme de temps donné en mois (par exemple "M-12" ou "M-36"), soit sous forme de temps donné en jours (par exemple "EOS-968" ou "EOS-1011"). ). Toutes les données sont situées dans la même colonne.
J'ai besoin que les données soient continues pour être en mesure de faire l'analyse requise. En ce qui concerne le temps en mois, je supprime normalement le "M-" en faisant une "recherche et remplacement" - et en laissant le remplacement vide. C'est plus de travail pour changer les jours en mois.
Ma propre pensée initiale était de supprimer d'abord la partie "EOS-", puis de recalculer en mois, mais comme les données sont toutes situées dans la même colonne, j'ai du mal à séparer les deux "ensembles de données" jusqu'à ce qu'ils aient le même unité.
Auriez-vous de bonnes idées sur la façon dont je peux plus facilement faire cette transformation ? Peut-être qu'un petit script est nécessaire?
Toute aide est grandement appréciée.
Cordialement
Henriette
Tableau de donnéesRe : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Salut Dale.
Merci beaucoup pour votre aide.
BR Henriette
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Bonjour Jarmo.
Cela a parfaitement fonctionné. Merci beaucoup pour votre aide.
BR Henriette
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Je vois d'autres idées similaires, ci-joint est le mien (sans script).
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Vous n'avez pas besoin de le stocker dans une variable.
Exemple ci-dessous. Exécutez le script et vérifiez la formule pour MonthNumber :
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
Num(Word(2, :Time, "-"))
,
StartsWith(:Time, "EOS"),
Num(Word(2, :Time, "-"))/30
,
. //if starts with something else than "M" or "EOS"
);
));
Vous pouvez ensuite modifier la formule selon vos besoins.
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Bonjour.
Merci beaucoup pour votre aide. Je suis totalement nouveau dans les scripts JMP, alors peut-être que vous pouvez m'orienter dans la bonne direction en faisant les logiques manquantes.
Pour la "logique du mois", je veux juste supprimer la partie "M-", donc je pense que la fonction Word de la réponse de Dales devrait faire l'affaire.
Pour la "logique de jour", je souhaite supprimer la partie "EOS-" (à l'aide de la fonction Word), puis calculer la partie numérique des jours en mois. Peut-être une question stupide, mais puis-je simplement ajouter deux lignes de codage ou dois-je le stocker dans une variable d'une manière ou d'une autre?
Merci 
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?Salut Dale. Merci pour votre aide. Autant que je sache, l'utilisation de la fonction Word telle que décrite me donnera une colonne de données continues (yay), mais dans deux unités différentes (jours et mois).
Des idées sur la façon dont je peux recalculer les jours en mois, mais uniquement pour les lignes où la valeur numérique est en jours?
BR Henriette
Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?En plus d'utiliser Word(), vous pouvez utiliser l'instruction Starts With et If pour déterminer comment vous devez calculer le mois.
Ce script ci-dessous ajoutera les valeurs d'espace réservé 1 (mois) et 2 (jour). Remplacez-les par votre logique pour le calcul du mois
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Selected, Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
//month logic here
1
,
StartsWith(:Time, "EOS"),
//day logic here
2
,
. //if starts with something else than "M" or "EOS"
);
));

Re : Comment transformer une colonne de données temporelles (nominale) en données continues dans une unité (mois) ?La fonction "mot" semble faire l'affaire - voir le fichier d'exemple ci-joint.