Crear nueva columna con variables<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Estoy tratando de crear una nueva columna con fórmula, representada por 2 variables como se muestra a continuación:
dt << Nueva columna ("myNewColumn", Numeric, Continuous, Formula (: Techo ( XXColumn / Size) * Size));
dónde:
XXColumn es uno de los nombres de columna en dt, seleccionado en el cuadro de diálogo de columna
Tamaño = valor numérico del cuadro de diálogo de la columna
Mi intento resultó en una nueva columna con fórmula sin valor como fórmula creada como se muestra a continuación:
Techo (Columna (XXColumna) / Tamaño) * Tamaño
sin realmente asignarlo.
¿Alguna idea de cómo puedo lograr esto?
Re: Crear nueva columna con variablesGracias de nuevo, MS. Tomaré nota de esto.
Re: Crear nueva columna con variablesPor lo que pude ver al leer su código, f_Bin se refiere a una columna, mientras que n_Bin es una cadena, que es el tipo de datos que es más seguro usar aquí.
Re: Crear nueva columna con variablesfinalmente la magia sucedió !!!
aquí está el código que usé ..
col = dts << Nueva columna ("Binning", Numérico, Continuo);
Eval( Parse( Eval Insert( "col << Set Formula(:Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)<< eval formula" )) );
Gracias MS por la orientación; ¿Cuál es la diferencia en f_bin y n_bin que usé?
Re: Crear nueva columna con variablesIntente usar n_Bin directamente en lugar de f_Bin:
evaluar ( Analizar gramaticalmente ( Insertar evaluación ( "col << Establecer fórmula (techo (^n_Bin^ / ^BinSize^) * ^BinSize^)" )) ) ;
Re: Crear nueva columna con variablesNo funcionó. Tal vez debería explicar lo que estoy haciendo y compartir y pegar mi código.
Paso 1: recopile la entrada del cuadro de diálogo Columna
Paso 2: haga una tabla de resumen con Min, Mean, Max para la columna seleccionada + columna predeterminada
Paso 3: crea una nueva columna para el techo
Paso 4: Realice el trazado con el generador de gráficos
Código:
dt0 = tabla de datos actual();
FN = dt0 << Obtener Nombre;
r = Diálogo de columna (
Bin = ColList( "X, agrupamiento por", Max Col( 1 ) ),
Superposición = ColList( "Agrupar por / Superponer por", Max Col( 1 ) ),
Dividir = ColList( "Y, Respuesta",Max Col( 5 ) ),
Comparar = ColList( "X-Axis Top", Max Col( 1 ) ),
HList( "Tamaño del contenedor: ", Tamaño del contenedor = EditNumber( .1 ) ),
);
contenedor = r["contenedor"];
Superposición = r["Superposición"];
Dividir = r["Dividir"];
Comparar = r["Comparar"];
TamañoContenedor = r["TamañoContenedor"];
dts = dt0 << Resumen(
Grupo (: Fijo, columna (dt0, Superposición), columna (dt0, Comparar)),
Media( :Rendimiento ),
Min (columna (dt0, Bin)),
Media (columna (dt0, Bin)),
Max (columna (dt0, Bin)),
Min (columna(dt0,Dividir[1]) ),
Media (columna (dt0, Dividir [1])),
Max (columna (dt0, Dividir [1])),
Min (columna(dt0,Dividir[2]) ),
Media (columna (dt0, Dividir [2])),
Max (columna (dt0, Dividir [2])),
Min (columna (dt0, Dividir [3])),
Media (columna (dt0, Dividir [3])),
Max (columna (dt0, Dividir [3])),
Min (columna (dt0, Dividir [4])),
Media (columna (dt0, Dividir [4])),
Max (columna (dt0, Dividir [4])),
Min (columna(dt0,Dividir[5]) ),
Media (columna (dt0, Dividir [5])),
Max (columna (dt0, Dividir [5])),
formato de nombre de columna de estadísticas ("column stat"),
);
dts << Nombre del conjunto (FN || " Resumen");
n_Bin = Bin[1]||" Media";
f_Bin = Columna (dts, n_Bin);
col = dts << Nueva columna ("Binning", Numérico, Continuo);
Eval( Parse( Eval Insert( "col << Set Formula(Ceiling( ^f_Bin^ / ^BinSize^) * ^BinSize^)" )) );
Re: Crear nueva columna con variablesNo. Se supone que Eval Formula es equivalente hasta donde yo sé.
Intente separar la nueva columna y establezca la fórmula en expresiones separadas:
dt = Abierto ( "$SAMPLE_DATA/Clase grande.jmp" ) ;
columnas = Diálogo de columna (
Col1 = ColList ( "X" , Columna máx. ( 1 ) , Tipo de datos ( numérico ) ) ,
Col2 = ColList ( "Y" , Columna máx. ( 1 ) , Tipo de datos ( numérico ) )
) ;
XXColumna = columnas [ "Col1" ][ 1 ] << obtener nombre ;
Tamaño = columnas [ "Col2" ][ 1 ] << obtener nombre ;
columna = dt << Nueva columna ( "miNuevaColumna" , Numérico , Continuo ) ;
evaluar ( Analizar gramaticalmente ( Insertar evaluación ( "col << Establecer fórmula (techo ( ^XXColumna^ / ^Tamaño^) * ^Tamaño^)" ) ) ) ;
columna << fórmula de evaluación ;
Re: Crear nueva columna con variablesNo funciona. El resultado sigue siendo el mismo.
En JSL, aplique el botón == ? ¿Sabes?
Re: Crear nueva columna con variablesPrueba <
evaluar ( Analizar gramaticalmente ( Insertar evaluación ( "dt << Nueva Columna(\!"miNuevaColumna\!", Numérico, continuo, fórmula (techo ( ^XXColumna^ / ^Tamaño^) * ^Tamaño^), < ) ) ) ;
Re: Crear nueva columna con variablesel mio es JMP8.0.0 Windows
con o sin ella sigue igual. T_T
Re: Crear nueva columna con variablesNo, no se lo esperaba. Para mí (JMP 10 para Mac) funciona sin hacer clic en "Aplicar". Hubo dos puntos involuntarios antes de "Techo..." que permanecieron de su código original (ahora he editado mi código anterior). Tal vez ayude a eliminar eso.
Re: Crear nueva columna con variablesGracias MS.
La nueva columna creada con la fórmula correcta. Pero, las filas están vacías. Necesito ir a la sección de fórmulas en la interfaz de usuario y hacer clic en Aplicar y luego solo en las indicaciones de valores.
se espera?
Re: Crear nueva columna con variablesLas variables en fórmulas no se evalúan cuando se crean y, por lo tanto, deben expresarse literalmente. Una forma de eludir eso es manipular y analizar cadenas.
Ejemplo:
dt = Abierto ( "$SAMPLE_DATA/Clase grande.jmp" ) ;
columnas = Diálogo de columna ( Col1 = ColList ( "X" , Columna máx. ( 1 ) , Tipo de datos ( numérico ) ) , Col2 = ColList ( "Y" , Columna máx. ( 1 ) , , Tipo de datos ( numérico ) ) ) ;
XXcolumna = columnas [ "Col1" ][ 1 ] << obtener nombre ;
Tamaño = columnas [ "Col2" ][ 1 ] << obtener nombre ;
evaluar ( Analizar gramaticalmente ( Insertar evaluación ( "dt << Nueva Columna(\!"miNuevaColumna\!", Numérico, continuo, fórmula (techo ( ^XXColumna^ / ^Tamaño^) * ^Tamaño^))" ) ) ) ;