Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Par exemple, ajoutez une colonne « test » avec « Big Class.jmp » et écrivez une formule aléatoire. Comment utiliser JSL pour enregistrer le texte de la formule d'extraction de formule dans cette colonne dans une cellule d'une autre colonne ?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "test" );
Column( "test" ) << Formula( If( age > 15, height + 50 + weight, height + 100 + weight ) );
dt << run formulas;
New Column( "txt", Character, "Nominal" );

Automatisation et scriptsOrganisation du contenuMélange et nettoyage des donnéesPartager et communiquer les résultatsRe : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Puisqu'il n'y a aucune valeur manquante dans les données réelles, toutes les formes de code suivantes peuvent être supprimées.
!Is Missing(:abc) &
Is Missing(:abb) |
Comment cela devrait-il être codé en JSL ? Merci les experts !
Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Je ne suis toujours pas familier avec l'utilisation de JSL pour un traitement régulier,
Encore une fois, cela se fait avec EmEditor.
document.selection.Replace("([a-Z]) ([a-Z])","\\1zzzz\\2",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" ","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("zzzz"," ",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("Is Missing\\(:(.[^)]{0,})\\)\\|","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("!Is Missing\\(:(.[^)]{0,})\\)&","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Oui, mon utilisation consiste à entraîner le modèle une fois, à obtenir la formule de prédiction et à enregistrer directement la formule sous forme de texte dans la cellule.
Lorsqu'il est utilisé pour l'analyse de nouvelles données, utilisez directement le formulaire suivant pour calculer les nouvelles données à l'aide de la formule de prédiction d'origine
aaa = dt[1, "txt"];
Current Data Table( d2 );
Eval( Parse( "Column(d2,\!"test\!")<<FORMULA></FORMULA>
Merci!
Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Cela dépend de l'intention ultime ici, mais il pourrait être plus simple de conserver la formule dans la cellule d'un message. colonne d'expression .
Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?La formule de prédiction dérivée de la formation xGBoost est trop complexe.
Comment appliquer cette formule de prédiction à de nouvelles données est vraiment compliqué.
Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?fait avec une expression régulière

Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Voir << obtenir la formule pour récupérer la formule.
Voir Word() pour récupérer les éléments délimités vides afin de créer une version "vide supprimée" de la formule ou cela peut être fait avec une expression régulière
Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Vous pouvez obtenir la formule avec << Get Formula puis la changer en caractère et effectuer les modifications requises
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("test", Formula(If(:age > 15, :height + 50 + :weight, :height + 100 + :weight)));
dt << New Column("txt", Character, "Nominal", << Set Each Value(
Substitute(Char(AsColumn(:test) << get formula), " ", "")
));Re : Comment utiliser JSL pour extraire le texte d'une formule d'une colonne et l'enregistrer dans une cellule ?Et je souhaite utiliser JSL pour obtenir la formule permettant de supprimer le caractère de nouvelle ligne, mais également de supprimer l'espace redondant. Rend le contenu du texte de la formule stocké dans la cellule plus simple.
dt[1,"txt"]=
If(:age>15,:height+50+:weight,:height+100+:weight)
Merci les experts !