Re: Erreur en boucle pour normaliser les colonnes numériquesLorsque vous spécifiez une valeur de formule, aucune évaluation de la JSL n'est effectuée pour la formule. Au lieu de cela, il ne fera que déplacer le code dans la formule. Alors, ce qui est placé dans la formule est " Col Standardiser ( : numericColNames [ je ] ) ", ne pas, " Col Standardiser ( : VotreNomColonne ) ". Ainsi, lorsque la formule sera exécutée, il recherchera la valeur "i" qui, au moment de son exécution, aura déjà été déplacé au-delà de votre plage d'indice pour Colnames. Il faut donc placer la syntaxe exacte JSL de la formule dans la formule.
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 1, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( __col__ ) )
)
),
Expr( __col__ ), Parse( ":" || numericColNames[i] )
)
)
);Erreur en boucle pour normaliser les colonnes numériquesSalut. J'ai écrit un script pour créer de nouvelles colonnes numériques à partir de la formule à normaliser, mais je reçois une erreur lors de l'évaluation de la formule. Qu'est-ce que je fais mal?
Je vous remercie.
Le scénario:
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
For( i = 1, i <= N Items( numericColNames ), i++,
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( :numericColNames[i] ) ) )
);
L'erreur:
Name Unresolved: numericColNames 1 times At rows: {1} Operation: numericColNames, :numericColNames
Re: Erreur en boucle pour normaliser les colonnes numériquesCher Monsieur, j'ai une petite table à essayer. Il consiste en une colonne avec le nom des municipalités, une colonne (1900) avec des valeurs entières correspondant à la population en 1900 et une autre colonne exprimée en pourcentage. Quand j’essaie la scritp, je trouve que, bien que l’instruction "numericColNames" = dt << obtenir des noms de colonnes ( chaîne , numérique ) ; "reconnaît les valeurs numériques des colonnes 1900 et" Pourcentage Canvi "lors de la création des deux nouvelles colonnes, celle correspondant à 1900 la laissant avec les valeurs manquantes.
Re: Erreur en boucle pour normaliser les colonnes numériquesUn nom de colonne tel que 1900 peut confondre JMP, car il se peut qu'il ne sache pas s'il doit le traiter comme un numéro ou un nom de colonne. Il faut donc indiquer spécifiquement qu'il s'agit d'un nom de colonne en utilisant la fonction: Name () ... voir le script retravaillé ci-dessous
Names Default To Here( 1 );
dt = Current Data Table();
numericColNames = dt << get column names( string, numeric );
numericColNames = {"1900"}
For( i = 1, i <= N Items( numericColNames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( numericColNames[i] ) || "_Stand",
Numeric,
Continuous,
Formula( Col Standardize( __col__ ) )
)
),
Expr( __col__ ), Parse( ":Name(\!"" || numericColNames[i] || "\!")" )
)
)
);Re: Erreur en boucle pour normaliser les colonnes numériquesMonsieur, vous semblez avoir une réponse à tout. Merci encore pour votre contribution!