Re: El uso de Where() para filtrar el análisis crea una nueva tabla de datos privados vinculadosLas plataformas tienen un manejo común para Where() y By(), los cuales crean tablas de subconjuntos para implementar la funcionalidad.No estoy seguro de si existe documentación con este nivel de detalle sobre la implementación.
El subconjunto puede proporcionar una distinción útil en comparación con la manipulación del estado de fila a través de filtros.Este ejemplo muestra que cuando ajusta un modelo a subconjuntos, JMP evitará aplicar ese modelo a las filas que no están en el subconjunto.Si hace lo mismo con un filtro, el modelo se aplica a todas las filas.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
El hecho de que desee utilizar este tipo de subconjunto puede depender de las especificaciones del análisis que esté realizando.
-Dan
El uso de Where() para filtrar el análisis crea una nueva tabla de datos privados vinculadosPor lo general, no me importa cuando JMP (JSL) hace algo que no espero que haga, ya que la mayoría de las veces funciona y es lo único que me importa ... pero hoy se me ocurrió algo "interesante". Si usa Where() para filtrar su análisis, terminará con una tabla de datos privados que está vinculada a su tabla de datos (con un nombre bastante extraño, en este caso "Big Class, where -sex == -F-")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
Así que tengo algunas preguntas con respecto a este comportamiento:
- ¿Sucede esto siempre cuando uso Where() como este para filtrar el análisis (no solo en Graph Builder)?
- ¿Está esto documentado en alguna parte?
- ¿Hay más interacciones como esta en JMP donde creas algunas cosas ocultas que luego podrías encontrar de esta manera (para mí esto causó problemas con una de mis funciones porque usé << Obtener tabla de datos para obtener la referencia de la tabla de datos pero me equivoqué, la solución fácil fue agregar una referencia de tabla a la función como parámetro
- ¿Debería incluso hacer un filtrado como este?
Editar:
Agregar algunas páginas de ayuda que están al menos parcialmente relacionadas con esto
Automatización y secuencias de comandos