Re : Insérer une expression dans la listeLa première section, où je souhaite insérer des expressions dans une liste, peut facilement être résolue par la ligne de code ci-dessous.
insert into( newlist, name expr( name_arg ) );
Sur la résolution de la section suivante !
Re : Insérer une expression dans la listeJ'ai fait fonctionner la deuxième partie du script, celle avec les termes d'interaction !
</CODE></PRE><P> </P><PRE><CODE class=" language-jsl">for( a = 1, a <= N items( collist2 ), a++,
// Empty arg to identify cols by names
name_arg = Expr( column() );
name_arg2 = Expr( column() );
// For whatever the match below, the result must be added to newlist2
// Regex works, as per regex101.com
if( !contains( collist2[a], "*" ), insert into( name_arg, eval insert( collist2[a] ) );
insert into( newlist2, name expr( name_arg ) ), // single term insert, refer to basic needs flow above
insert into( name_arg, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Breaks apart 1st group to insert into column()
insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Breaks apart 2nd group to insert into column()
insert into( newlist2, Eval Expr( expr( name_arg )*expr( name_arg2 ) ) );
);
);
show( newlist2 );
Output:
newlist2 = {Column("Col 1"), Column("Col 2"), Column("Col 3"), Column("Col 4"), Column("Col 5"), Column("Col 1") * Column("Col 2"), Column("Col 2") * Column("Col 4"), Column("Col 5") * Column("Col 5")};Espérons que cela aide à guider les autres dans l'apprentissage des manipulations d'expression. C'est un long voyage - mais c'est puissant et ça vaut le coup ! 
Insertion d'une expression dans la listeBonjour,
J'apprends à travailler avec des manipulations d'expression et j'ai du mal à m'y retrouver.
Dans la première section du code ci-dessous, je peux insérer avec succès le nom de la colonne de chaîne dans l'expression column(), mais je ne peux pas insérer les expressions générées dans une liste.
La deuxième section décompose les termes d'interaction (il s'agit d'une liste d'effets de SLS), les insère dans leur propre expression column(), les reconstitue en tant que terme d'interaction, puis les insère dans une liste.Cette rubrique ne fonctionne pas.
Quelqu'un a-t-il des conseils utiles ou voit-il quelque chose que je comprends mal sur le fonctionnement des manipulations d'expression?Merci d'avance!
les noms par défaut sont here(1); // Besoin de base ci-dessous - mais ne fonctionne que pour les noms de colonne unique collist = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5" } ; nouvelle liste = {} ; for( i = 1, i <= N items(collist), i++, // Arg vide pour identifier les cols par leurs noms name_arg = Expr( column() ); insert into( name_arg, eval insert( collist[i] ) ); // résultat : colonne("Col 1"), ou autres colonnes insérées <-- Fonctionne comme prévu show( name_arg ); // Affiche l'insertion réussie dans insert into( newlist, insert into( name_arg, eval insert( collist[i] ) ) ); // Insertion imbriquée dans ne fonctionne pas // Nécessité d'insérer le résultat de la première insertion dans, dans nouvelle liste ); afficher( nouvelle liste ); // Affiche actuellement une liste vide /////////////////////////////////////// NE FONCTIONNE PAS , CI-DESSOUS // Flux avancé - détection d'interaction collist2 = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5", "Col 1*Col 2", "Col 2*Col 4", "Col 5*Col 5" } ; nouvelle liste2 = {} ; for( a = 1, a <= N items( collist2 ), a++, // Arg vide pour identifier les cols par noms name_arg = Expr( column() ); // Quelle que soit la correspondance ci-dessous, le résultat doit être ajouté à newlist2 // Regex fonctionne, selon regex101.com if( !contains( collist2[a], "*" ), insert into( name_arg2, eval insert( collist2[a] ) ), // insert à terme unique, se référer aux besoins de base flux au-dessus de l'insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Sépare le 1er groupe à insérer dans la colonne () insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Sépare le 2ème groupe à insérer dans la colonne () // La ligne ci-dessous est une maquette de la réunion du premier et du deuxième groupe en tant que termes d'interaction - ne fonctionne pas //eval expr( expr( insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*)$", "\1" ) ) )*insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*) $", "\2" ) ) ); ) ); Sortie_désirée = { colonne("Col 1"), colonne("Col 2") , colonne("Col 3"), colonne("Col 4"), colonne("Col 5"), colonne("Col 1")*colonne("Col 2"), colonne("Col 2")*colonne ("Col 4"), colonne("Col 5")*colonne("Col 5") } ;Scriptles fenêtres