Bonjour,
J'ai une table SAS que je cherche à conserver uniquement les lignes où y a pas de données manquantes.
merci
Bonjour,
J'ai une table SAS que je cherche à conserver uniquement les lignes où y a pas de données manquantes.
merci
Bonjour,
Essai le code ci dessous :
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 array num{*} _NUMERIC_ ; do i = 1 TO dim(num) ; IF missing (num{i}) then delete ; end ; array char{*} _CHARACTER_ ; do i = 1 TO dim(char) ; IF missing (char{i}) then delete ; end ;
est ce qu'il faut mettre les noms de mes variables qui contiennent des données manquantes au lieu de "Char"
J'ai essayé mais ça me dit que la variables n'est pas défini comme "char".
Un exemple pratique svp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 data A; input X $ nb_a $ var_a; cards; C01 A 15 C02 A . C03 A 15 ; run; data B; input X $ nb_b $ var_b; cards; C01 B . C03 B 10 ; run; data C; input X $ nb_c $ var_c; cards; C01 C . C03 C 10 ; run; data all2; merge A(in=a) B(in=b) C(in=c); by X; array num{*} _NUMERIC_ ; do i = 1 TO dim(num) ; IF missing (num{i}) then delete ; end ; array char{*} _CHARACTER_ ; do i = 1 TO dim(char) ; IF missing (char{i}) then delete ; end ; run;
Si seules les variables numériques sont concernées, tu peux écrire dans une étape DATA
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF NMISS(OF _NUMERIC_)>0 THEN DELETE ;
@ Olivier: mes variables sont catégorielles.
@ suistrop: le code marche bien sur le jeu de données, par contre lorsque je l'applique sur ma propre table, j'obtiens une seule ligne avec les noms des variables.
Je ne sais pas c'est quoi le problème ?
Bonjour,
C'est étrange que le code ci dessous ne marche pas.
Essai ce code en ne conservant que quelques colonnes de ta table.
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 data table_out; set table_in; array num{*} _NUMERIC_ ; do i = 1 TO dim(num) ; IF missing (num{i}) then DELETE ; end ; array char{*} _CHARACTER_ ; do i = 1 TO dim(char) ; IF missing (char{i}) then DELETE ; end ; run;
On peut utiliser la fonction CMISS pour déterminer le nombre des valeurs manquantes des variables caractères.
(version SAS 9.2 et +)
http://support.sas.com/kb/36/480.html
Ward
Code : Sélectionner tout - Visualiser dans une fenêtre à part if cmiss(of _CHARACTER_)>0 then delete ;
@ hossward: j'ai essayé le code que tu m'a donné, mais rien ne se passe, j'obtiens exactement la même table avec les données manquantes.
Bonjour,
Si ta table de base contient des variables numériques et caractères. Essayes donc ceci :
Ward
Code : Sélectionner tout - Visualiser dans une fenêtre à part if cmiss(of _all_) > 0 then delete ;
Partager