Publicado el :
ETL CREATION_INTERNE

Transformación y conversión de unidades de peso

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script utiliza un paso DATA para leer identificadores de sujeto y sus pesos, que pueden incluir unidades como 'kg' o 'lbs'. El peso se pone primero en mayúsculas. Luego, se eliminan los caracteres no numéricos (unidades y puntos), y se extrae el valor numérico. Si la unidad original era en kilogramos (detectado por la presencia de 'K'), el peso se convierte a libras. Solo se mantienen el sujeto y el peso numérico convertido. Se utiliza un PROC PRINT para mostrar el conjunto de datos resultante.
Análisis de datos

Type : CREATION_INTERNE


Los datos fuente se integran directamente en el script a través de un bloque DATALINES. Contienen identificadores de sujeto y valores de peso con sus unidades (por ejemplo, '50kg', '121Lbs.', '88KG.', '200lb'). El puntero ' @code_sas/16.4'.sas se utiliza para leer múltiples observaciones por línea física, actuando como un ' @@' con las datalines.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA lee los datos proporcionados a través de `datalines`. Utiliza un puntero de línea (` @`) para permitir leer múltiples observaciones (sujeto, peso) por línea física, ya que no hay otra instrucción INPUT en la iteración. La variable `weight` se convierte a mayúsculas. La función `compress` se utiliza para limpiar la cadena `weight` eliminando los caracteres de las unidades ('KGLBS.') y los puntos, luego `input` convierte la cadena limpia en un valor numérico (`num_weight`). Finalmente, si la unidad original era 'K' (kilogramos), el valor `num_weight` se multiplica por 2.2 para convertirlo a libras. Solo las variables `subj` y `num_weight` se conservan en el conjunto de datos final `WT`.
¡Copiado!
1DATA WT;
2 INPUT subj weight $ @;
3 weight=upcase(weight);
4 num_weight=INPUT(compress(weight, "KGLBS."), 8.);
5 IF index(weight, "K") > 0 THEN num_weight = num_weight * 2.2;
6 keep subj num_weight;
7 
8DATALINES;
91 50kg 2 120 3 121Lbs. 4 88KG. 5 200
106 80kG 7 250lb
11;
12 
2 Bloque de código
PROC PRINT
Explicación :
Esta PROC PRINT muestra el contenido del conjunto de datos `WT` creado por el paso DATA anterior, mostrando los sujetos y sus pesos convertidos a libras.
¡Copiado!
1PROC PRINT;
2RUN;
3 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.