Re: Insertar expresión en la listaLa primera sección, donde quiero insertar expresiones en una lista, se puede resolver fácilmente con la siguiente línea de código.
insert into( newlist, name expr( name_arg ) );
¡A resolver la siguiente sección!
Re: Insertar expresión en la lista¡Conseguí que funcionara la segunda parte del guión, la de los términos de interacción!
</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")};Esperemos que esto ayude a guiar a otros a aprender manipulaciones de expresión. Es un viaje largo, ¡pero es poderoso y vale la pena! 
Insertar expresión en la listaHola,
Estoy aprendiendo a trabajar con manipulaciones de expresión y me está costando entenderlo.
En la primera sección del código a continuación, puedo insertar con éxito el nombre de la columna de cadena en la expresión column(), pero no puedo insertar las expresiones generadas en una lista.
La segunda sección separa los términos de interacción (esta es una lista de efectos de SLS), los inserta en su propia expresión column(), los vuelve a unir como un término de interacción y luego los inserta en una lista.Esta sección no funciona.
¿Alguien tiene algún consejo útil o ve algo que no entiendo sobre cómo funcionan las manipulaciones de expresión?¡Gracias por adelantado!
los nombres están predeterminados aquí (1); // Necesidad básica a continuación, pero solo funciona para nombres de una sola columna collist = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5" }; nueva lista = {}; for( i = 1, i <= N items(collist), i++, // Argumento vacío para identificar columnas por nombres name_arg = Expr( column() ); insert into( name_arg, eval insert( collist[i] ) ); // resultado: columna("Col 1") u otras columnas insertadas <-- Trabajando según lo previsto show( nombre_arg ); // Muestra la inserción exitosa en insert into( newlist, insert into( nombre_arg, eval insert( collist[i] ) ) ); // La inserción anidada en no funciona // Necesito insertar el resultado de la primera inserción en, en newlist ); mostrar (nueva lista); // Actualmente muestra la lista vacía ///////////////////////////////////// No funciona , ABAJO // Flujo avanzado - detección de interacción collist2 = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5", "Col 1*Col 2", "Col 2*Col 4", "Columna 5*Columna 5" }; nuevalista2 = {}; for( a = 1, a <= N elementos( collist2 ), a++, // Argumento vacío para identificar columnas por nombres name_arg = Expr( column() ); // Cualquiera que sea la coincidencia a continuación, el resultado debe agregarse a newlist2 // Regex funciona, según regex101.com if( !contains( collist2[a], "*" ), insert into( name_arg2, eval insert( collist2[a] ) ), // inserción de un solo término, refiérase a las necesidades básicas flujo arriba insertar en( nombre_arg2, eval insert(regex(collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Separa el primer grupo para insertarlo en la columna () insert into( name_arg2, eval insert( regex(collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Separa el segundo grupo para insertarlo en la columna () // La siguiente línea es una maqueta de volver a unir el primer y el segundo grupo como términos de interacción - no funciona //eval expr( expr( insert into( nombre_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*)$", "\1" ) ) )*insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*) $", "\2" ) ) ); ) ); Desired_output = { columna("Col 1"), columna("Col 2") , columna("Columna 3"), columna("Columna 4"), columna("Columna 5"), columna("Columna 1")*columna("Columna 2"), columna("Columna 2")*columna ("Columna 4"), columna("Columna 5")*columna("Columna 5") };secuencias de comandosventanas