Comment extraire le mois en mots à partir d'une valeur de date et comment modifier le marqueur par défaut pour les valeurs aberrantes ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut tout le monde.
1.) Comment puis-je extraire le mois en mots à partir d’une valeur de date pour une colonne entière ?
Disons que la cellule n°1 a la date " 19/03/2009 ". J'aimerais que la colonne suivante indique le mois - " Mars ", dans cet exemple.
2.) Existe-t-il un moyen de modifier le marqueur par défaut pour les valeurs aberrantes - par exemple, faire globalement des marqueurs aberrants un triangle décrit ?
J'apprécie l'aide.
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?une version plus sophistiquée :
Names Default To Here( 1 );
// make a sample data table
dt = New Table( "Data",
add rows( 10000 ),
New Column( "it", Numeric, Ordinal, Format( "Best", 8 ), Formula( Row() ) ),
New Column( "Batch", Numeric, Ordinal, Format( "Best", 8 ), formula( Random Integer( 110 ) ) ),
New Column( "y1", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "y2", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "Out",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy1",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy2",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
);
dt << run formulas;
Column( dt, "it" ) << delete formula;
Column( dt, "Batch" ) << delete formula;
Column( dt, "y1" ) << delete formula;
Column( dt, "y2" ) << delete formula;
Column( dt, "Out" ) << delete formula;
Column( dt, "Outy1" ) << delete formula;
Column( dt, "Outy2" ) << delete formula;
// now we get to work
// make a list of batches
byvarlist = Associative Array( dt:Batch ) << get keys;
// make a list of columns
cols = dt << get column names( Continuous ); //List all Numeric columns
// loop through the batches
For( i = 1, i <= N Items( byvarlist ), i++,
// select each batch
dt << select where( dt:Batch == byvarlist[i] );
// subset each batch
subdt = dt << Subset( Selected Rows( 1 ) );
// clear selection for smoth workflow
dt << clear select;
// finde outliers in each variable within each batch
For( ii = 1, ii <= N Items( cols ), ii++,
out = Eval(
Parse(
"subdt << get rows where(
subdt:" || Char( cols[ii] ) || " > Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.75 ) + 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )) | subdt:" || Char( cols[ii] ) || " <
Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 ) - 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )));"
)
)`;
Eval( Parse( "column (subdt, \!"Out" || Char( cols[ii] || "\!" )[" || Char( out ) || "] = 1;" ) ) );
// also indicate the global outlier
Column( subdt, "Out" )[out] = 1;
//wait (0.00001);
);
// update original data table with new information for the batch
subdt << delete columns( "Batch" );
subdt << delete columns( cols );
dt << Update( With( subdt ), Match Columns( :it = :it ) );
Close( subdt, No Save );
//Wait( 0.00001 );
);
dt << color by column( :Out );
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Fonctionne comme une fonction VLookup (false).
Merci, Ian !
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Pas mieux peut-être, mais comme alternative, vous pouvez également utiliser « Month() » et définir une propriété d'étiquette de valeur :
Nouveau tableau ( "Mois de la date" ,
Ajouter des lignes ( 1 ) ,
Nouvelle colonne ( "Date" ,
Numérique ,
"Continu" ,
Format ( "m/j/a" , 12 ) ,
Format d'entrée ( "m/j/a" ) ,
Formule ( Aujourd'hui () )
) ,
Nouvelle colonne ( "Mois" ,
Numérique ,
"Continu" ,
Format ( "Meilleur" , 12 ) ,
Formule ( Mois ( : Date ) ) ,
Étiquettes de valeur (
{ 1 = "Janvier" , 2 = "Février" , 3 = "Mars" , 4 = "Avril" , 5 = "Peut" , 6
= "Juin" , 7 = "Juillet" , 8 = "Août" , 9 = "Septembre" , dix = "Octobre" , 11
= "Novembre" , 12 = "Décembre" }
) ,
Utiliser des étiquettes de valeur ( 1 )
)
)
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Un scénario sympa, Ron !
Je l'ai essayé sur Fit Y by X, Distribution & Graph Builder et cela a fonctionné à merveille *
Vraiment reconnaissant et admiratif pour votre expertise dans JMP, Ron et Jim.
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Très appréciée, Jim !
J'étais sur le point d'abandonner et de me contenter de Substring() ou Left().
Votre solution fonctionne parfaitement.
-Randy
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?une autre façon non recommandée de faire ce que vous voulez consiste à modifier les préférences pour les lignes sélectionnées dans les graphiques. je ne recommande pas de travailler avec des sélections car certaines autres commandes utiliseront la sélection par défaut au lieu de toutes les lignes du tableau. mais tu peux toujours essayer ceci :
Noms par défaut ici ( 1 ) ;
//Attention : La modification d'une préférence entraînera
//affecte le comportement par défaut de JMP.
Préférences ( Mode de sélection de marqueur ( 1 ) ) ; // vous pouvez également le faire à partir du menu des préférences fichier>>, vous n'avez besoin de le faire qu'une seule fois.
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" ) ;
// récupère la liste des colonnes
cols = dt << obtenir les noms de colonnes ( Continu ) ; //Liste toutes les colonnes numériques
Pour ( je = 1 , je <= N articles ( cols ) , je ++,
dehors = Évaluer (
Analyser (
"dt << obtenir les lignes où (
dt :" || Carboniser ( cols [ je ] ) || " > Col Quantile( dt:" || Carboniser ( cols [ je ] ) || ", 0,75 ) + 1,5 * (Col Quantile( dt:" ||
Carboniser ( cols [ je ] ) || ", 0.75 ) - Col Quantile(dt:" || Carboniser ( cols [ je ] ) || ", 0,25 )) | dt :" || Carboniser ( cols [ je ] ) || " <
Col Quantile(dt:"
|| Carboniser ( cols [ je ] ) || ", 0,25 ) - 1,5 * (Col Quantile( dt:" || Carboniser ( cols [ je ] ) || ", 0.75 ) - Col Quantile(dt:" || Carboniser ( cols [ je ] ) ||
", 0,25 )));"
)
) `;
choisi = dt << sélectionner des lignes ( dehors ) ;
choisi << Marqueurs ( 17 ) ;
// sélectionné << Taille du marqueur ( 5 ); // aucune option de ce type
) ;
// regarde à quoi ça ressemble
nouvelle fenetre ( "Sortir" ,
h zone de liste (
Distribution (
Distribution continue ( Colonne ( : hauteur ) , Afficher les pourcentages ( 1 ) , Personnaliser les statistiques récapitulatives ( Somme ( 1 ) ) ) ,
Distribution continue ( Colonne ( : poids ) , Afficher les pourcentages ( 1 ) , Personnaliser les statistiques récapitulatives ( Somme ( 1 ) ) ) ,
EnvoyerVersRapport (
Expédition ( { "Distributions" , "hauteur" } , "Histogramme de distribution" , Boîte de cadre , { Segment de répartition ( Segment historique ( 1 ) , Couleur de l'histogramme ( 53 ) )} ) ,
Expédition ( { "Distributions" , "poids" } , "Histogramme de distribution" , Boîte de cadre , { Segment de répartition ( Segment historique ( 1 ) , Couleur de l'histogramme ( 53 ) )} )
)
) ,
Bivarié ( Oui ( : hauteur ) , X ( : poids ) )
)
) ;
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Salut Rabelardo ,
txnelson a raison sur les deux sujets. mais, si vous souhaitez définir le marqueur pour les valeurs aberrantes univariées (style bruteforce), vous pouvez essayer ce qui suit.
il peut être avantageux (ou désavantageux) que toute ligne présentant une valeur aberrante dans une colonne porte désormais la marque spéciale. vous pouvez modifier cela pour marquer les valeurs aberrantes dans des colonnes spécifiques au fur et à mesure de l'analyse.
Bonne chance!
Ron
Noms par défaut ici ( 1 ) ;
dt = Ouvrir ( "$SAMPLE_DATA/Grande Classe.jmp" ) ;
// récupère la liste des colonnes
cols = dt << obtenir les noms de colonnes ( Continu ) ; //Liste toutes les colonnes numériques
Pour ( je = 1 , je <= N articles ( cols ) , je ++,
dehors = Évaluer (
Analyser (
"dt << obtenir les lignes où (
dt :" || Carboniser ( cols [ je ] ) || " > Col Quantile( dt:" || Carboniser ( cols [ je ] ) || ", 0,75 ) + 1,5 * (Col Quantile( dt:" ||
Carboniser ( cols [ je ] ) || ", 0.75 ) - Col Quantile(dt:" || Carboniser ( cols [ je ] ) || ", 0,25 )) | dt :" || Carboniser ( cols [ je ] ) || " <
Col Quantile(dt:"
|| Carboniser ( cols [ je ] ) || ", 0,25 ) - 1,5 * (Col Quantile( dt:" || Carboniser ( cols [ je ] ) || ", 0.75 ) - Col Quantile(dt:" || Carboniser ( cols [ je ] ) ||
", 0,25 )));"
)
)` ;
choisi = dt << sélectionner des lignes ( dehors ) ;
choisi << Marqueurs ( "*" ) ;
choisi << effacer la sélection ;
) ;
// regarde à quoi ça ressemble
Distribution (
Distribution continue ( Colonne ( : hauteur ) , Afficher les pourcentages ( 1 ) , Personnaliser les statistiques récapitulatives ( Somme ( 1 ) ) ) ,
Distribution continue ( Colonne ( : poids ) , Afficher les pourcentages ( 1 ) , Personnaliser les statistiques récapitulatives ( Somme ( 1 ) ) ) ,
EnvoyerVersRapport (
Expédition ( { "Distributions" , "hauteur" } , "Histogramme de distribution" , Boîte de cadre , { Segment de répartition ( Segment historique ( 1 ) , Couleur de l'histogramme ( 53 ) )} ) ,
Expédition ( { "Distributions" , "poids" } , "Histogramme de distribution" , Boîte de cadre , { Segment de répartition ( Segment historique ( 1 ) , Couleur de l'histogramme ( 53 ) )} )
)
) ;
Re : Comment extraire le mois en mots à partir d'une valeur de date et comment changer le marqueur par défaut pour les valeurs aberrantes ?Les résultats suivants ont été obtenus :

En appliquant la formule suivante à la colonne Mois :

Concernant votre deuxième question sur l'attribution de marqueurs spécifiques aux valeurs aberrantes.Le problème avec cela est que les marqueurs sont attribués en tant qu'état de ligne aux lignes, et non aux cellules des colonnes.Il n’est donc pas possible de procéder à une affectation globale des marqueurs aberrants pour chaque colonne.