2017-04-07 1 views
0

Ich habe ein Makro, wo der Benutzer wählen kann, welche Datei das Makro ausführen soll. Ich würde gerne wissen, ob es eine Möglichkeit gibt, nur eine Variable von jedem ausgewählten Datensatz zu behalten und nur dann, wenn sie in meiner Liste von Variablennamen erscheint.SAS- behalten Sie nur wenn in der Liste

Zum Beispiel würde der Benutzer% LET TABLEN = revinfo eingeben; wo revinfo.sas den variablen Umsatz enthält, aber nicht den Gewinn oder Umsatz. Ich möchte nur die eine Variable Umsatz.

Ich versuchte mehrere Keep-Anweisungen, aber es Fehler, wenn es versucht, eine Variable zu halten, die nicht da ist.

data want; 
SET have.&TABLEN; 
    KEEP  income; 
    KEEP  revenue; 
    KEEP  profit; 
    KEEP  sales; 
RUN; 

Vielen Dank, KK

+0

Woher wissen Sie, dass 'revinfo'' revenue' hat, und umgekehrt, woher wissen Sie, dass 'revenue' die Variable ist, die von' revinfo' zu behalten ist? – Joe

+0

Erster Schritt - geben Sie Ihre Logik an. Ein Diagramm oder eine Tabelle, die aufgeschrieben ist, spart Ihnen Stunden Kopf und Schreibtisch. – Reeza

Antwort

0

Der einfachste Weg, dies zu tun, vorausgesetzt, dass Sie kümmern sich um jede Eingabevalidierung separat einnehmen, oder dass an den Benutzer zu verlassen, ist SAS zu sagen, nicht zu Fehler, wenn Sie versuchen, eine Variable zu behalten, die nicht da ist. Sie können dies tun, indem Sie option dkricond = warn; oder nowarn anstelle der Standardeinstellung error festlegen.

Wenn Sie diese Route verwenden, rate ich Ihnen, die vorherige Einstellung zu notieren, bevor Sie diese Option ändern und sie dann ändern, nachdem der Rest Ihres Makros ausgeführt wurde.

Verwandte Themen