Enregistrement des résultats de SAS proc freq avec plusieurs tables
Je suis débutant dans le SAS et j'ai le problème suivant.
J'ai besoin de calculer les comtes et les pourcentages de plusieurs variables (A B C) à partir d'un même ensemble de données et enregistrer les résultats d'un autre ensemble de données.
mon code est:
proc freq data=mydata;
les tableaux A B C /=data_out ; run;
le résultat de la procédure pour chaque variable apparaît dans le SAS de sortie de la fenêtre, mais data_out contient uniquement les résultats de la dernière variable. Comment faire pour enregistrer tous en data_out?
Toute aide est appréciée.
OriginalL'auteur Natalia | 2015-01-16
Vous devez vous connecter pour publier un commentaire.
ODS OUTPUT
est votre réponse. Vous ne pouvez pas sortir directement à l'aide de laOUT=
, mais vous pouvez leur sortie comme suit:OneWayFreqs est une des tables, (n>1)-la façon dont les tables sont CrossTabFreqs:
Vous pouvez trouver le bon nom en exécutant
ods trace on;
puis exécutez votre premier proc que ce soit (à l'écran); il vous dira le nom de la sortie dans le journal. (ods trace off;
lorsque vous êtes fatigué de le voir.)OriginalL'auteur Joe
Beaucoup de bonne base sas choses à apprendre ici
1) Exécuter trois proc freq consolidés (un pour chaque variable a b c) avec un autre jeu de données en sortie nom pour que les ensembles de données ne sont pas écrites plus.
2) utiliser une option renommer le = instruction pour modifier le nombre et le pourcentage des variables lorsque vous combinez les ensembles de données
3) trier par catégorie et fusionner tous les fichiers de données ensemble
(Je suis en supposant qu'il existe des valeurs qui apparaissent dans de multiples variables, si non, on peut juste empiler les ensembles de données)
OriginalL'auteur KnowYourOnion
C'est une question que j'ai traitée de nombreuses fois, et je SOUHAITE que SAS avait une meilleure façon de le faire.
Ma solution a été d'une macro qui est généralisée, fournir vos données d'entrée, votre liste de variables et le nom de votre jeu de données en sortie. Je prends en considération le format/type de/étiquette de la variable que vous avez à faire
Espère que cela aide:
https://gist.github.com/statgeek/c099e294e2a8c8b5580a
/*
Description: Crée un Freq tableau de variables, y compris pour cent/comte
Paramètres:
dsetin - inputdataset
varlist - liste des variables à analyser séparés par des espaces
dsetout - nom du jeu de données pour être créé
Auteur: F. Khurshed
Date: Novembre 2011
*/
OriginalL'auteur Reeza
Que jamais, il ya beaucoup de façons différentes de faire ce genre de chose dans le SAS. Ici sont un couple d'autres options:
1. Utilisation proc résumé plutôt que de proc freq:
2. Utiliser plusieurs instructions de tables dans un seul
proc freq
C'est plus efficace que de courir 3 proc freq états, la SAS n'a qu'à lire le jeu de données en entrée une seule fois plutôt que 3 fois:
OriginalL'auteur user667489
L'option STACKODS(SORTIE) a été ajoutée à PROC SIGNIFIE en 9.3 rend ce beaucoup plus facile.
OriginalL'auteur FriedEgg