¿Hay alguna forma de crear una matriz multicapa?Hola,
1) Estoy intentando crear una matriz multicapa donde una clave obtiene varias capas. ¿Hay alguna manera de hacerlo? Por ejemplo, mi jsl debería verse así:
EX = Matriz asociativa( {"Azul", "Verde", "Rojo"}, {1, 2, 3}, {"Oso", "Gecko", "Conejo"} );
Estoy intentando conseguir que si selecciono "Azul", obtenga tanto 1 como "Oso".
2) ¿Existe alguna forma de que una matriz se asigne a una función? Por ejemplo,
EX = Matriz asociativa( {"Azul", "Verde"}, {funciónA, funciónB} );
¿Hay alguna forma de que el valor devuelto active una función? Lo he intentado y los valores que obtengo están en términos de cadena, es decir, si selecciono "Azul", obtengo la cadena "funciónA" en lugar de ejecutar la funciónA.
Modelado estadístico avanzadoAutomatización y scriptingExploración y visualización de datosRe: ¿Hay alguna forma de crear una matriz multicapa?Desafortunadamente, JMP no ofrece un Código Postal() función para listas, pero puede crear fácilmente una como solución a su primer elemento:
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = Associative Array( {"Blue", "Green", "Red"}, zip( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) );
Show( ex )Para su segundo artículo, vea la función Nombre Expr() - debe hacer lo que quieras.Tenga en cuenta, sin embargo, que debido a las limitaciones del analizador JSL, primero deberá establecer una variable temporal para que la función aterrice y luego llamar desde esa variable temporal.
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = [=>];
EX["zip"] = Name Expr( zip );
func = ex["zip"];
Show( func( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) )Re: ¿Hay alguna forma de crear una matriz multicapa?Solo otra forma de implementar sería la siguiente:
Names Default To Here( 1 );
// nested structure
EX = Associative Array( {"Blue", "Green", "Red"}, {{1, "Bear"}, {2, , "Gecko"}, {3, "Rabbit"}} );
Show( EX["Blue"] );
// Function example
myadd = Function( {op1, op2},
op1 + op2
);
mymult = Function( {op1, op2},
op1 * op2
);
func_aa = Associative Array( {"add", "mult"}, {myadd, mymult} );
myfunc = func_aa["add"];
Show( myfunc( 1, 2 ) );