¿Cómo convertir etiquetas de valores de columna en valores?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Soy nuevo en la comunidad (pero he usado JMP desde la versión 1), así que no sé dónde plantear esta pregunta.
Haber importado un archivo de SPSS (.sav) con varias columnas con etiquetas de valores. Quiero usar las etiquetas de valores (que son nombres reales) en lugar de los valores (que son números). Recode parece no tener esta función. ¿Alguien podría ayudar? Muchas gracias por adelantado. Jens
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Gracias a todos los que han ayudado con esto. He estado alejado de la computadora por algún tiempo, pero ahora vuelvo a trabajar con JMP. Probaré las diferentes sugerencias y veré cuál es la más rápida para mí.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Otra forma de convertir la columna en una columna de etiquetas es copiar la columna y pegar los datos en una ventana del editor de secuencias de comandos (o cualquier ventana de texto). Luego copie los datos de la ventana de texto. Pegue en una nueva columna de caracteres en su tabla original.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?No pude resistirme a intentar escribir un guión con la idea de Karen. Obtener etiquetas de valor devuelve una expresión con un argumento: una lista de "asignaciones", por ejemplo, 2 = "No". Se me ocurren dos enfoques: utilizar estas asignaciones (ilegales) directamente o, como sugiere Xan, manipularlas en un Fósforo expresión.
A continuación se muestran mis intentos en ambos enfoques. El método Match es más rápido aquí. Para tablas grandes y si muchos valores carecen de etiquetas, el rendimiento parece ser más igualitario. El código Match probablemente se pueda mejorar.
open_example_table = Expr(
dt = Open( "$SAMPLE_DATA/CrabSatellites.jmp" );
col = Column( dt, "color" );
col << data type( character );
);
//1
open_example_table;
bt = HP Time();
// Direct assignment code
v = Arg( col << get value labels(), 1 );
For( i = 1, i <= N Items( v ), i++,
col[dt << get rows where( col[] == Arg( v[i], 1 ) )] = Arg( v[i], 2 )
);
// End direct assignment
ht = HP Time();
t1 = ht - bt;
Close( dt, no save );
// 2
open_example_table;
bt = HP Time();
// code for building Match expression by string manipulation
match_expr = Parse(
"Match( col[]," || Substitute( Char( Arg( col << get value labels(), 1 ) ),
"{", "",
"=", ",",
"}", ""
) || ",col[])"
);
For Each Row( col[] = match_expr );
// End Match
ht = HP Time();
t2 = ht - bt;
Show( t1, t2 );
t1 = 1729;
t2 = 1019;
//:*/
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Buena idea, Karen.
Jens, No es fácil sacar las etiquetas como datos. Se me ocurren dos formas:
- Con las secuencias de comandos, puede utilizar Obtener etiquetas de valor y manipular manual o mediante programación el resultado para que sea como la expresión Match() que genera Recode cuando lo guarda como una secuencia de comandos.
- Haga una Tabulación en la variable y use Convertir en tabla de datos en el resultado.
Para el punto 2, necesitará alguna forma de hacer coincidir las cosas si no están en una asignación ordenada uno a uno. Pasos para eso:
- Cree una copia de los valores en una nueva columna (sin etiquetas de valor)

- Utilice Tabular con ambas variables como columnas de categorías:


- Utilice el comando Tabular Convertir en tabla de datos para obtener una nueva tabla sin propiedades de Etiquetas de valor.
- Utilice Tablas > Unir para hacer coincidir los valores sin procesar y obtener la nueva columna "etiquetada" sin etiquetas de valor.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Creo que lo que nos gustaría (pero no tenemos ahora) es una "recodificación con etiquetas de valor".Yo también he querido esta función de vez en cuando.
karen
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Si tiene una tabla de códigos y sus valores, puede usar el comando ACTUALIZAR para agregar la columna de valor adecuada.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Hola, gracias por el consejo. Hay más de 300 etiquetas de valores, que tendría que ingresar manualmente en Recode; esperaba que hubiera una manera más inteligente.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Cambie el tipo de datos a carácter y luego use Recodificar.
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Hola Stanley, gracias por intentar ayudar.Conozco la función de las etiquetas de valor, pero lo que necesito es cambiar o sustituir valores 1,2,3 por valores de caracteres No, Sí (por ejemplo, como en su ejemplo).
Necesito unir dos tablas con columnas coincidentes, una de las cuales tiene valores de caracteres (igual que las etiquetas de valores en la otra tabla, es decir, no se usó codificación), la otra tiene valores numéricos (códigos) con etiquetas de valores.
¿O hay alguna manera de unir las tablas sobre la marcha en función de las etiquetas de valores de una columna en una tabla y los valores reales en la columna correspondiente en la otra tabla?
Atentamente
Jens
Re: ¿Cómo convertir etiquetas de valores de columnas en valores?Hola,
Si entiendo tu pregunta correctamente.
Puede activar o desactivar las etiquetas de valor a través de las propiedades de la columna.
En este ejemplo, utilizando las Preferencias del Consumidor de los datos de muestra, pude Haga clic derecho en la columna y desmarque la opción de etiqueta de valor.

La columna ya no utiliza la etiqueta de valor como se muestra a continuación.

Espero que esto ayude.
Mejor,
estan