Concept MailLib - Exercice n°12

avec solution

Thématique

Éviter un retain implicite lors de la fusion (merge) de deux datasets dans une étape data

Mots-clés

*data step #merge

Données

data one;
    subject=1; test='A'; x=1; output;
    subject=1; test='B'; x=2; output;
    subject=1; test='C'; x=3; output;
    subject=2; test='A'; x=1; output;
run; 
data two;
    subject=1; y=100; output;
    subject=2; y=200; output;
run; 
Dataset one Dataset two

Programme

data demo;
    merge one two;
    by subject;
    if test='B' then y=999;
run; 
Dataset one Dataset two Dataset demo

Les datasets one et two sont fusionnés par subject. La valeur de y est alors mise à jour lorsque test='B'. Mais lorsque test='C', la valeur de y ne reste pas 100 ; elle est également modifiée.

Tâche

Mettre à jour le programme pour obtenir le résultat suivant :

Dataset one Dataset two Dataset demo (Updated)

Solution Possible

data demo;
    merge one two;
    by subject;
run;
 
data demo;
    set demo;
    if test='B' then y=999;
run; 

Resource Hub

Module 5 Traitement de données 3
Module 5, Chapitre 2 Fusionner plusieurs datasets
Module 5, Chapitre 2.8 Exemple 16 : Éviter le retain implicite

Copyright © 2024 xxformat GmbH, Tous droits réservés

xxformat GmbH

c/o STARTPLATZ, Im Mediapark 5
50670 Cologne
Allemagne

Amtsgericht Köln HRB 90276

Geschäftsführer: Véronique Bourcier
veronique.bourcier@xxformat.com
+49 1577 288 6066