Script pour ignorer la modification d'une colonne si la colonne n'est pas présenteSalut tout le monde,
Existe-t-il un moyen d'ignorer automatiquement un morceau de script si la colonne ciblée n'est pas présente ? Par exemple, j'ai le script présenté ci-dessous, et parfois il n'y a pas de "C numérique" disponible (c'est un élément d'automatisation qui peut ou non avoir 3 variables). Le script se bloque actuellement sur cette pièce lorsqu'il n'y a pas de « C numérique » ; idéalement, je souhaiterai créer un script avec plusieurs "# numériques" qui ignoreront automatiquement cette partie du script si elle n'est pas présente :
Tableau de données ( "Sous-ensemble du 5 janvier" ) ;
Colonne ( "Colonne" ) << Type de données ( Numérique ) ;
Colonne ( "Colonne" ) << Type de modélisation ( Continu ) ;
Colonne ( "Données" ) << Type de données ( Numérique ) ;
Colonne ( "Données" ) << Type de modélisation ( Continu ) ;
Colonne ( "Numérique A" ) << Type de données ( Numérique ) ;
Colonne ( "Numérique A" ) << Type de modélisation ( Continu ) ;
Colonne ( "Numérique B" ) << Type de données ( Numérique ) ;
Colonne ( "Numérique B" ) << Type de modélisation ( Continu ) ;
Colonne ( "C numérique" ) << Type de données ( Numérique ) ;
Colonne ( "C numérique" ) << Type de modélisation ( Continu ) ;
Merci,
Joe
Re : Script pour ignorer la modification d'une colonne si la colonne n'est pas présenteVoici un script qui prend ce que vous avez dit avoir essayé et le corrige pour qu'il fonctionne.J'ai également annoté le script pour aider à comprendre ce que fait chaque instruction.
// Set a variable "dt" to point to the data table you want to work on
// In the example you showed, it was a table called "Jan 5 Subset"
dt = Data Table("Jan 5 Subset");
// Now request to get from the data table, now referenced by the
// variable "dt" and return the list as strings
// Using the Contains function, we will check to see if a column
// named "Numerical A" is found in the returned list of column
// names. If it is, the comparison will be true and the statements
// following the "," will be executed
IF( Contains(dt << Get column names(string), "Numerical A"),
// Set the Data Type and Modeling Type for the column "Numerical A"
Column("Numerical A") <<DATA type=""></DATA>Re : Script pour ignorer la modification d'une colonne si la colonne n'est pas présenteCe deuxième script fonctionne parfaitement, merci beaucoup !Re : Script pour ignorer la modification d'une colonne si la colonne n'est pas présenteSalut Jim,
Merci pour cette réponse rapide. J'ai essayé la fonction top :
dt = Tableau de données ( "Sous-ensemble du 5 janvier" );
Si ( Contient (dt < < obtenir colonne noms( chaîne ), "Colonne" ),
Colonne ( "Colonne" ) < < Données Taper ( Numérique ) < < La modélisation Taper (Continu)
);
Cependant, je ne sais pas quoi mettre à l'endroit où se trouve "(string)" dans le script ?
À l'heure actuelle le script semble échouer sur cette ligne avec "Send Expects Scriptable Object". Mon script actuel pour cela serait :
SI ( Contient ( dt << Obtenir les noms de colonnes ( chaîne ) , "Numérique A" ) ,
"Numérique A" ) << Type de données ( Numérique ) << Type de modélisation ( Continu ) ;
Toutes mes excuses s'il y a quelque chose de vraiment évident qui me manque ici, merci d'avance.
Re : Script pour ignorer la modification d'une colonne si la colonne n'est pas présenteIl y a plusieurs façons de procéder ......
La première consiste à placer les instructions qui doivent être qualifiées, dans une fonction IF.Le plus formel serait d'obtenir les noms de colonnes de la table de données, puis de baser la condition IF sur la question de savoir si la colonne a été trouvée.
dt = Data Table( "Jan 5 Subset" );
If( Contains( dt << get column names( string ), "Column" ),
Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous )
);
La deuxième méthode consiste à laisser JMP ignorer toutes les erreurs trouvées à l'aide d'une fonction Try.
Try( Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous ) );
L'instruction peut échouer, mais JMP poursuivra son exécution