Seleccionar varias columnas y hacer un histograma en un scriptHola,
He escrito un script para seleccionar dos columnas de una tabla y hacer un histograma. Me gusta poder seleccionar un número arbitrario de columnas y hacer un histograma para la seleccionada. ¿Alguien puede ayudarme a lograrlo? He enumerado mi guión a continuación. Gracias
dt = Abierto ( "A.csv" );
xvar= . ;
yvar = . ;
ganar = Nueva ventana ( "Elija dos variables" ,
<< Modal ,
<< Al validar (
// requiere que el usuario seleccione dos variables antes de hacer clic en Aceptar
Espectáculo ( xvar, yvar );
Si ( Está perdido ( xvar ) | Está perdido ( yvar ),
0 , // si faltan xvar o yvar, no hacer nada cuando se hace clic en Aceptar
1
);
),
Caja de texto ( " Seleccione dos columnas numéricas. " ),
Cuadro de lista H (
Caja de texto ( "Elige primero" ),
x = Cuadro de lista de columnas (
dt, // referencia de la tabla de datos
todo, // muestra todas las columnas de la tabla de datos
xvar = (x << Ser seleccionado )[ 1 ];
// obtenemos el nombre de la columna seleccionada antes de que se cierre la ventana
Espectáculo ( xvar );
),
Caja de texto ( "Elige segundo" ),
y = Cuadro de lista de columnas (
dt,
todo,
yvar = (y << Ser seleccionado )[ 1 ];
Espectáculo ( yvar );
)
)
);
xcol = Columna (dt, xvar); //obtener las columnas
ycol = Columna ( dt, yvar );
nombre1 = ":" || xvar;
nombre2 = ":" || yvar;
nombre = nombre1 || "," || nombre2;
Espectáculo ( nombre );
evaluar (
Analizar gramaticalmente (
"obj1 = Distribución(
pila (1),
Distribución continua( Columna(" || nombre1 || ") ,
),
Distribución continua( Columna(" || nombre2 ||
"),
)
);"
)
);
Re: Seleccionar varias columnas y hacer histograma en un scriptGracias. Ese es un guión muy útil.Re: Seleccionar varias columnas y hacer histograma en un scriptHola,
Gracias de nuevo. Quería guardar el resultado del histograma en HTML y lo hice en el pasado. Aquí está el guión con algunas modificaciones. me sale un error
Nombre Sin resolver: obj en acceso o evaluación de 'obj'). Aprecio tu ayuda.
dt = Abierto ( "A.csv" );
ganar = Nueva ventana ( "Selección de datos" ,
Cuadro de lista H (
Caja de paneles ( "Columnas disponibles" , dtCols = Cuadro de lista de columnas (dt, todo, ancho( 80 ) ), ),
Caja de paneles ( "Columnas seleccionadas" ,
Cuadro de lista H (
Cuadro de lista V (
agregarBotón = Caja de botones ( "Agregar" , listacol << Adjuntar ( dtCols << Ser seleccionado ) ),
eliminarBotón = Caja de botones ( "Eliminar" , listacol << Eliminar selección () )
),
listacol = Cuadro de lista de columnas (numérico, ancho( 80 ), MinItems( 1 ), N líneas ( 4 ) )
)
),
botón ok = Caja de botones ( "DE ACUERDO" ,
PlotCols = listacol << Obtener artículos ;
cadena = "" ;
Para (yo = 1 , yo <= N artículos (PlotCols), i++,
cadena = cadena || "Distribución continua(Columna(:Nombre(\!"" || argumentos[i] || "\!"))),
"
);
evaluar ( Analizar gramaticalmente ( "obj = dt << Distribución(pila(1)," || cadena || ");" ) );
ganar << Cerrar ventana ;
)
)
);
objeto << informe ;
objeto << Guardar HTML interactivo ( "A" );
Re: Seleccionar varias columnas y hacer histograma en un scriptMuchas gracias por brindar la solución. Lo probé y funciona.
Re: Seleccionar varias columnas y hacer histograma en un scriptAquí hay un método que usa colListBoxes:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = New Window("Data Select",
H List Box(
Panel Box("Available Columns",
dtCols = Col List Box(dt, all, width(80)),
),
Panel Box("Selected Columns",
H List Box(
V list Box(
addButton = Button Box("Add", colList << Append(dtCols << Get Selected) ),
removeButton = Button Box("Remove", colList << Remove Selected() )
),
colList = Col List Box(numeric, width(80), MinItems(1), N Lines(4))
)
),
okButton = Button Box("OK",
PlotCols = colList << Get Items;
str = "";
for(i=1,i<=N Items(PlotCols),i++,
str = str||"Continuous Distribution(Column(:Name(\!""||plotcols[i]||"\!"))),
"
);
eval(parse("dt << Distribution(stack(1),"||str||");"));
win << Close Window;
)
)
);