¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos.
1.) ¿Cómo puedo extraer el mes en palabras de un valor de fecha para una columna completa?
Digamos que la celda #1 tiene la fecha " 19/03/2009 ". Me gustaría que la siguiente columna incluyera el mes. " Marzo ", en este ejemplo.
2.) ¿Hay alguna manera de cambiar el marcador predeterminado para los valores atípicos, como hacer globalmente que los marcadores de valores atípicos sean un triángulo delineado?
Agradezco la ayuda.
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?una versión más sofisticada:
Names Default To Here( 1 );
// make a sample data table
dt = New Table( "Data",
add rows( 10000 ),
New Column( "it", Numeric, Ordinal, Format( "Best", 8 ), Formula( Row() ) ),
New Column( "Batch", Numeric, Ordinal, Format( "Best", 8 ), formula( Random Integer( 110 ) ) ),
New Column( "y1", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "y2", Numeric, Continues, Format( "Best", 8 ), formula( Random Lognormal( :Batch / 10, 5 ) ) ),
New Column( "Out",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy1",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
New Column( "Outy2",
Numeric,
Ordinal,
Format( "Best", 8 ),
Set Property( "Value Colors", {0 = -13977687, 1 = -4222943} ),
Color Cell by Value,
formula( 0 )
),
);
dt << run formulas;
Column( dt, "it" ) << delete formula;
Column( dt, "Batch" ) << delete formula;
Column( dt, "y1" ) << delete formula;
Column( dt, "y2" ) << delete formula;
Column( dt, "Out" ) << delete formula;
Column( dt, "Outy1" ) << delete formula;
Column( dt, "Outy2" ) << delete formula;
// now we get to work
// make a list of batches
byvarlist = Associative Array( dt:Batch ) << get keys;
// make a list of columns
cols = dt << get column names( Continuous ); //List all Numeric columns
// loop through the batches
For( i = 1, i <= N Items( byvarlist ), i++,
// select each batch
dt << select where( dt:Batch == byvarlist[i] );
// subset each batch
subdt = dt << Subset( Selected Rows( 1 ) );
// clear selection for smoth workflow
dt << clear select;
// finde outliers in each variable within each batch
For( ii = 1, ii <= N Items( cols ), ii++,
out = Eval(
Parse(
"subdt << get rows where(
subdt:" || Char( cols[ii] ) || " > Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.75 ) + 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )) | subdt:" || Char( cols[ii] ) || " <
Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 ) - 1.5 * (Col Quantile( subdt:" || Char( cols[ii] ) || ", 0.75 ) - Col Quantile( subdt:" || Char( cols[ii] ) ||
", 0.25 )));"
)
)`;
Eval( Parse( "column (subdt, \!"Out" || Char( cols[ii] || "\!" )[" || Char( out ) || "] = 1;" ) ) );
// also indicate the global outlier
Column( subdt, "Out" )[out] = 1;
//wait (0.00001);
);
// update original data table with new information for the batch
subdt << delete columns( "Batch" );
subdt << delete columns( cols );
dt << Update( With( subdt ), Match Columns( :it = :it ) );
Close( subdt, No Save );
//Wait( 0.00001 );
);
dt << color by column( :Out );
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Funciona como una función VLookup (falso).
Gracias, ian !
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Quizás no sea mejor, pero como alternativa, también puedes usar 'Mes()' y definir una propiedad de etiqueta de valor:
Nueva mesa ( "Mes de la fecha" ,
Agregar filas ( 1 ) ,
Nueva columna ( "Fecha" ,
Numérico ,
"Continuo" ,
Formato ( "m/d/a" , 12 ) ,
Formato de entrada ( "m/d/a" ) ,
Fórmula ( Hoy () )
) ,
Nueva columna ( "Mes" ,
Numérico ,
"Continuo" ,
Formato ( "Mejor" , 12 ) ,
Fórmula ( Mes ( : Fecha ) ) ,
Etiquetas de valor (
{ 1 = "Enero" , 2 = "Febrero" , 3 = "Marzo" , 4 = "Abril" , 5 = "Puede" , 6
= "Junio" , 7 = "Julio" , 8 = "Agosto" , 9 = "Septiembre" , 10 = "Octubre" , 11
= "Noviembre" , 12 = "Diciembre" }
) ,
Utilice etiquetas de valor ( 1 )
)
)
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Guión genial, ron !
Lo probé en Fit Y by X, Distribution & Graph Builder y funcionó de maravilla *
Realmente agradecido y admiro su experiencia en JMP, Ron y Jim.
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Muy apreciado, Jim !
Estaba a punto de rendirme y decidirme por Substring() o Left().
Tu solución funciona perfectamente.
- Randy
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Otra forma no recomendada de hacer lo que quieres es cambiar las preferencias de las filas seleccionadas en los gráficos. No recomiendo trabajar con selecciones ya que algunos otros comandos usarán la selección de forma predeterminada en lugar de todas las filas de la tabla. pero aún puedes probar esto:
Nombres predeterminados aquí ( 1 ) ;
//Precaución: cambiar una preferencia
//afecta el comportamiento predeterminado de JMP.
Preferencias ( Modo de selección de marcador ( 1 ) ) ; // también puedes hacer esto desde el menú de preferencias archivo>>, solo necesitas hacerlo una vez.
dt = Abierto ( "$SAMPLE_DATA/Gran Clase.jmp" ) ;
// obtener lista de columnas
columnas = dt << obtener nombres de columnas ( Continuo ) ; //Listar todas las columnas numéricas
Para ( i = 1 , i <= N artículos ( columnas ) , i ++,
afuera = evaluar (
Analizar gramaticalmente (
"dt << obtener filas donde(
dt:" || Carbonizarse ( columnas [ i ] ) || " > Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,75 ) + 1,5 * (Col Cuantil( dt:" ||
Carbonizarse ( columnas [ i ] ) || ", 0,75) - Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,25 )) | dt:" || Carbonizarse ( columnas [ i ] ) || " <
Col Cuantil( dt:"
|| Carbonizarse ( columnas [ i ] ) || ", 0,25) - 1,5 * (Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,75) - Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) ||
", 0,25 )));"
)
) `;
seleccionado = dt << seleccionar filas ( afuera ) ;
seleccionado << Marcadores ( 17 ) ;
//seleccionado << Tamaño del marcador ( 5 ); // no existe esa opción
) ;
// mira como se ve
nueva ventana ( "Producción" ,
h cuadro de lista (
Distribución (
Distribución continua ( Columna ( : altura ) , Mostrar porcentajes ( 1 ) , Personalizar estadísticas resumidas ( Suma ( 1 ) ) ) ,
Distribución continua ( Columna ( : peso ) , Mostrar porcentajes ( 1 ) , Personalizar estadísticas resumidas ( Suma ( 1 ) ) ) ,
Enviar a informe (
Despacho ( { "Distribuciones" , "altura" } , "Distribuir histograma" , Cuadro de marco , { DespachoSeg ( Hist Seg ( 1 ) , Color del histograma ( 53 ) )} ) ,
Despacho ( { "Distribuciones" , "peso" } , "Distribuir histograma" , Cuadro de marco , { DespachoSeg ( Hist Seg ( 1 ) , Color del histograma ( 53 ) )} )
)
) ,
bivariado ( Y ( : altura ) , X ( : peso ) )
)
) ;
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Hola rabelardo ,
txnelson tiene razón en ambos temas. pero, si desea establecer el marcador para valores atípicos univariados (estilo de fuerza bruta), puede intentar lo siguiente.
Puede ser una ventaja (o desventaja) que cualquier fila que sea atípica en cualquier columna ahora tenga la marca especial. puede modificar esto para marcar los valores atípicos en columnas específicas a medida que avanza el análisis.
¡Buena suerte!
ron
Nombres predeterminados aquí ( 1 ) ;
dt = Abierto ( "$SAMPLE_DATA/Gran Clase.jmp" ) ;
// obtener lista de columnas
columnas = dt << obtener nombres de columnas ( Continuo ) ; //Listar todas las columnas numéricas
Para ( i = 1 , i <= N artículos ( columnas ) , i ++,
afuera = evaluar (
Analizar gramaticalmente (
"dt << obtener filas donde(
dt:" || Carbonizarse ( columnas [ i ] ) || " > Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,75 ) + 1,5 * (Col Cuantil( dt:" ||
Carbonizarse ( columnas [ i ] ) || ", 0,75) - Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,25 )) | dt:" || Carbonizarse ( columnas [ i ] ) || " <
Col Cuantil( dt:"
|| Carbonizarse ( columnas [ i ] ) || ", 0,25) - 1,5 * (Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) || ", 0,75) - Col Cuantil( dt:" || Carbonizarse ( columnas [ i ] ) ||
", 0,25 )));"
)
)` ;
seleccionado = dt << seleccionar filas ( afuera ) ;
seleccionado << Marcadores ( "*" ) ;
seleccionado << borrar selección ;
) ;
// mira como se ve
Distribución (
Distribución continua ( Columna ( : altura ) , Mostrar porcentajes ( 1 ) , Personalizar estadísticas resumidas ( Suma ( 1 ) ) ) ,
Distribución continua ( Columna ( : peso ) , Mostrar porcentajes ( 1 ) , Personalizar estadísticas resumidas ( Suma ( 1 ) ) ) ,
Enviar a informe (
Despacho ( { "Distribuciones" , "altura" } , "Distribuir histograma" , Cuadro de marco , { DespachoSeg ( Hist Seg ( 1 ) , Color del histograma ( 53 ) )} ) ,
Despacho ( { "Distribuciones" , "peso" } , "Distribuir histograma" , Cuadro de marco , { DespachoSeg ( Hist Seg ( 1 ) , Color del histograma ( 53 ) )} )
)
) ;
Re: ¿Cómo extraer el mes en palabras de un valor de fecha y cómo cambiar el marcador predeterminado para valores atípicos?Se lograron los siguientes resultados:

Aplicando la siguiente fórmula a la columna Mes:

Con respecto a su segunda pregunta sobre la asignación de marcadores específicos a valores atípicos.El problema con esto es que los marcadores se asignan como un estado de fila a las filas, no a las celdas dentro de las columnas.Por lo tanto, no es posible realizar una asignación global de marcadores de valores atípicos para cada columna.