Publié le :
ETL CREATION_INTERNE

Transformation et conversion des unités de poids

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script utilise une étape DATA pour lire des identifiants de sujet et leurs poids, qui peuvent inclure des unités comme 'kg' ou 'lbs'. Le poids est d'abord mis en majuscules. Ensuite, les caractères non numériques (unités et points) sont supprimés, et la valeur numérique est extraite. Si l'unité originale était en kilogrammes (détecté par la présence de 'K'), le poids est converti en livres. Seuls le sujet et le poids numérique converti sont conservés. Une PROC PRINT est utilisée pour afficher le jeu de données résultant.
Analyse des données

Type : CREATION_INTERNE


Les données source sont intégrées directement dans le script via un bloc DATALINES. Elles contiennent des identifiants de sujet et des valeurs de poids avec leurs unités (par exemple, '50kg', '121Lbs.', '88KG.', '200lb'). Le pointeur '@' est utilisé pour lire plusieurs observations par ligne physique, agissant comme un '@@' avec les datalines.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA lit les données fournies via `datalines`. Il utilise un pointeur de ligne (`@`) pour permettre de lire plusieurs observations (sujet, poids) par ligne physique, car il n'y a pas d'autre instruction INPUT dans l'itération. La variable `weight` est convertie en majuscules. La fonction `compress` est utilisée pour nettoyer la chaîne `weight` en retirant les caractères des unités ('KGLBS.') et les points, puis `input` convertit la chaîne nettoyée en une valeur numérique (`num_weight`). Enfin, si l'unité originale était 'K' (kilogrammes), la valeur `num_weight` est multipliée par 2.2 pour la convertir en livres. Seules les variables `subj` et `num_weight` sont conservées dans le jeu de données final `WT`.
Copié !
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 Bloc de code
PROC PRINT
Explication :
Cette PROC PRINT affiche le contenu du jeu de données `WT` créé par l'étape DATA précédente, montrant les sujets et leurs poids convertis en livres.
Copié !
1PROC PRINT;
2RUN;
3 
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.