Ich habe viele Datensätze von 2001 bis 2014 für viele Jahre, die wie folgt aussehen. Jedes Jahr wird in einer Datei gespeichert, yXXXX.sas7bdat
,Return-Datensatz der Spalte Summen in SAS
ID Weight X1 X2 X3
1 100 1 2 4
2 300 4 3 4
und ich brauche einen Datensatz zu erstellen, in dem für jedes Jahr wir die (gewichtet) Summen von jedem der X
Spalten haben.
X1 X2 X3 Year
10 20 30 2014
40 15 20 2013
Ich wäre glücklich, diese in ein Makro zu implementieren, aber ich bin so unsicher Spaltensummen, und auch eine effiziente Art und Weise zu isolieren Ergebnisse zusammen zu befestigen (proc anhängen?)
Edit: Einschließlich ein Versuch.
%macro final_dataset;
%do i = 2001 %to 2014;
/*Code here which enables me to get the column sums I am interested in.*/
proc means data = y&i;
weight = weight;
X1 = SUM X1;
X2 = SUM X2;
X3 = SUM X3;
OUTPUT OUT = sums&i;
run;
data final;
set final sums&i;
run;
%end;
%mend;
Bearbeiten: Ein weiterer Versuch.
%macro final_dataset;
%do i = 2001 %to 2014;
/*Code here which enables me to get the column sums I am interested in.*/
proc means data = y&i SUM;
weight = weight;
var X1 X2 X3;
OUTPUT OUT = sums&i;
run;
data final;
set final sums&i;
run;
%end;
%mend;
Bearbeiten: Finale.
post, was Sie bisher versucht haben. Die einfachste Methode besteht darin, wahrscheinlich alle Datasets anzufügen und dann proc für diesen Dataset zu verwenden. Keine Makros erforderlich. – Reeza
@Reeza Danke für Ihren Kommentar. Ich bin mir bewusst, dass dies eine ziemlich lahme Frage war - Entschuldigung. Ich bin kein nativer SAS-Benutzer und habe den Tag damit verbracht, ein Skript eines Kollegen zu patchen, der momentan nicht verfügbar ist. Diese kleine Aufgabe spielt in einem größeren Skript eine untergeordnete Rolle - normalerweise verwende ich R für diese Art von Dingen. Es ist etwas zeitempfindlich, also würde ich jede Hilfe, die Sie geben könnten, schätzen. Ich werde meinen Hauptbeitrag aktualisieren, um zu zeigen, dass ich dies unabhängig versucht habe. – Ross