Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneSalut,
J'essaie de générer un script où je dois sélectionner une colonne. Avec cette sélection, je crée une nouvelle colonne, qui contient une formule (avec la colonne sélectionnée). Voici ma démarche :
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
J'ai deux problèmes :
1. Comment puis-je générer une variable Coulumn par la sélection ?
2. Comment puis-je utiliser cette Variable dans ma formule ? Pour "Plage" (numérique) c'est possible, mais pas pour la colonne sélectionnée (caractère).
Re : Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneHigh Jim, c'est un excellent scénario.Est-il possible de créer des colonnes de formule supplémentaires (Col Mean() ...) en ajoutant des boutons de formule supplémentaires ?
Re : Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneMerci!
Re : Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneLe code se plaint que la valeur de Range n'est pas une chaîne de caractères.Donc, pour corriger cela, le code ci-dessous force à la fois la valeur de la plage et le nom de la colonne renvoyés à être des chaînes de caractères, en utilisant la fonction char() pour s'assurer qu'il s'agit de chaînes de caractères.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);Re : Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneMerci!
Si je regarde le code, cela devrait correspondre exactement à ce que je recherche. Mais j'ai un message d'erreur :
l'argument doit être un caractère dans l'accès ou l'évaluation de 'Concat' , Bad Argument( (lb << get selected)[1] ), dt << get table variable( "Range" ) || /*###*/" + :" || /*###*/(lb << être sélectionné
)[1] /*###*/
En tant que variable de table, j'ai obtenu la colonne sélectionnée. Mais l'évaluation de la formule pour la nouvelle colonne n'est pas possible.
Dois-je modifier des préférences dans ma version JMP ?
Re : Utiliser la colonne sélectionnée pour la formule dans une nouvelle colonneVoici un exemple de travail d'un script qui fera ce que je pense que votre script original a tenté de faire.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
Maintenant, le problème que j'ai est de comprendre quelques éléments.
- Pourquoi créez-vous des variables de table pour la valeur de Range et le nom de la nouvelle colonne ?
- La formule que vous avez spécifiée correspond-elle réellement à ce que vous voulez ?Ajouter le nombre 2 à la valeur d'une autre colonne ne donne aucun type de moyenne mobile.Est-ce que vous voulez vraiment faire, créer une vraie moyenne mobile de la ligne actuelle et des valeurs précédentes des 2 dernières lignes ?