Remodèle une table contenant des enregistrements fins (longs) en une table contenant des enregistrements larges.
| Paramètre | Description |
|---|---|
| attributes | Spécifie les attributs de la variable. |
| casOut | Spécifie les paramètres pour une table de sortie. |
| charSeparatorChar | Spécifie un caractère ou une chaîne de caractères utilisée pour séparer les parties des noms de variables de casOut si les deux sont des chaînes CHAR ou VARCHAR. |
| cumFreqName | Spécifie le nom de la variable pour la fréquence cumulée dans la table casOut. |
| frequencyName | Spécifie le nom de la variable dans la table casOut qui contient les fréquences. |
| groupIdName | Spécifie la variable dans la table qui contient les identifiants de groupe (groupIds). |
| id | Spécifie les variables d'ID à copier de la table vers la table casOut. |
| inputs | Spécifie les variables d'entrée pour l'analyse. |
| journalTrace | Lorsqu'il est défini sur True, écrit des informations de traçage détaillées dans le journal SAS. |
| keyModify | Spécifie si vous souhaitez que les valeurs de caractères dans les variables de la liste orderBy soient converties en majuscules (U), que les espaces consécutifs soient condensés en un seul espace (C), ou les deux. |
| max | Spécifie les variables pour lesquelles vous voulez la valeur maximale. |
| maxPosition | Spécifie la valeur maximale de la variable de position. Les enregistrements dont la valeur de la variable de position est supérieure à la valeur de maxPosition sont ignorés. |
| mean | Spécifie les variables pour lesquelles vous voulez la valeur moyenne. |
| min | Spécifie les variables pour lesquelles vous voulez la valeur minimale. |
| nMiss | Spécifie les variables pour lesquelles vous voulez le nombre de valeurs manquantes. |
| noPrefix | Lorsqu'il est défini sur True, et si la même variable est spécifiée pour sum, min, max, nMiss, ou mean, alors les noms de variables dans la table casOut seront _sum_, _min_, _max_, etc., au lieu de, par exemple, foo_sum, foo_min. |
| numSeparatorNum | Spécifie un caractère ou une chaîne de caractères utilisée pour séparer les parties des noms de variables de la table casOut si les deux sont numériques. |
| orderByTable | Spécifie la table orderByTable, qui est obtenue en exécutant l'action groupBy ou groupByInfo. |
| range | Spécifie les variables pour lesquelles vous voulez la plage des valeurs. |
| sum | Spécifie les variables pour lesquelles vous voulez que les valeurs soient sommées. |
| table | Spécifie le nom de la table, la caslib et d'autres paramètres communs. |
Ce code crée une table CAS nommée 'long_data' qui servira de base pour les exemples de remodelage de données de format long à large.
| 1 | DATA casuser.long_data; |
| 2 | DO group = 1 to 2; |
| 3 | DO i = 1 to 5; |
| 4 | INPUT col1 col2; |
| 5 | OUTPUT; |
| 6 | END; |
| 7 | END; |
| 8 | DATALINES; |
| 9 | 1 2 |
| 10 | 3 4 |
| 11 | 5 6 |
| 12 | 7 8 |
| 13 | 9 10 |
| 14 | 11 12 |
| 15 | 13 14 |
| 16 | 15 16 |
| 17 | 17 18 |
| 18 | 19 20 |
| 19 | ; |
| 20 | RUN; |
Cet exemple montre comment remodeler une table longue simple en une table large. Les valeurs de 'col1' et 'col2' deviendront de nouvelles variables dans la table de sortie, regroupées par la variable 'group'.
| 1 | PROC CAS; |
| 2 | dataShaping.longToWide RESULT=r / |
| 3 | TABLE={name='long_data', groupBy={'group'}}, |
| 4 | id={'i'}, |
| 5 | inputs={{name='col1'}, {name='col2'}}, |
| 6 | casOut={name='wide_data', replace=TRUE}; |
| 7 | RUN; |
| 8 | PRINT r.caslib r.name; |
| 9 | RUN; |
Cet exemple utilise d'abord l'action 'groupBy' pour créer une table d'ordre ('groupByTable'). Ensuite, l'action 'longToWide' utilise cette table pour ordonner les données avant de les remodeler, assurant un ordre cohérent.
| 1 | PROC CAS; |
| 2 | SIMPLE.groupBy / |
| 3 | TABLE={name='long_data'}, |
| 4 | aggregator='N', |
| 5 | inputs={{name='i'}}, |
| 6 | casOut={name='groupByTable', replace=TRUE}; |
| 7 | |
| 8 | dataShaping.longToWide RESULT=r / |
| 9 | TABLE={name='long_data', groupBy={'group'}}, |
| 10 | id={'i'}, |
| 11 | inputs={{name='col1'}, {name='col2'}}, |
| 12 | orderByTable={name='groupByTable'}, |
| 13 | casOut={name='wide_data_ordered', replace=TRUE}; |
| 14 | RUN; |
| 15 | PRINT r.caslib r.name; |
| 16 | RUN; |
Cet exemple remodèle non seulement la table de format long à large, mais calcule également des statistiques agrégées (somme, moyenne, min, max) pour les variables 'col1' et 'col2' pour chaque groupe.
| 1 | PROC CAS; |
| 2 | dataShaping.longToWide RESULT=r / |
| 3 | TABLE={name='long_data', groupBy={'group'}}, |
| 4 | id={'i'}, |
| 5 | inputs={{name='col1'}, {name='col2'}}, |
| 6 | sum={'col1', 'col2'}, |
| 7 | mean={'col1', 'col2'}, |
| 8 | min={'col1', 'col2'}, |
| 9 | max={'col1', 'col2'}, |
| 10 | casOut={name='wide_data_stats', replace=TRUE}; |
| 11 | RUN; |
| 12 | PRINT r.caslib r.name; |
| 13 | RUN; |