Ich muss Zeilen in Spalten in SAS konvertieren. Meine Frage ist fast identisch mit dieser: Convert Database Rows into ColumnsSAS-Zeilen in Spalten
Der Hauptunterschied ist, dass ich Arrays dafür verwenden muss. Ich bin mir nicht ganz sicher, wie ich das angehen soll. Ich habe TRANSPOSE angeschaut, aber das passt nicht wirklich zu den Kriterien meiner Frage. Ich würde mich über Ratschläge freuen, wie Sie diese Frage starten oder wie Sie sie angehen.
Danke.
Edit:
Data old;
input id year cost;
datalines;
1 1998 20
1 1999 30
1 2000 40
2 1998 20
2 1999 21
2 2000 25
3 1998 32
3 1999 33
;
run;
data want;
set old;
by ID;
array allcost(3) c1 - c3;
retain c1-c3;
if first.id then i=1;
else i+1;
allcost(3) = cost;
if last.id;
run;
Was ich diese aussehen soll:
1998 1999 2000
1 20 30 40
2 20 21 25
3 32 33
Statt dieses Ergebnis zu bekommen, erhalte ich eine Liste der Kosten in der c3 Spalte. Was mache ich falsch? Beachten Sie, dass c1-c3 die Jahre darstellen.
für einen Tisch dreht, [ 'PROC TRANSPOSE'] (http://support.sas.com/documentation/cdl/en/proc/70377/HTML/default/viewer.htm#p1r2tjnp8ewe3sn1acnpnrs3xbad.htm) Beantwortet die Frage. Sie sprechen über Arrays, aber Sie haben uns noch nicht gesagt warum. Wahrscheinlich werden Sie sich [PROC TABULATE'] anschauen wollen (http://support.sas.com/documentation/cdl/en/basess/68381/HTML/default/viewer.htm#n1k5pgl78tt14pn19adlvtvyw8l1.htm) . – Code4R7
Danke, ich bin nicht sicher, wo ich die Arrays verwenden muss, um dieses Ergebnis zu erreichen, da die Frage, die ich beantworten muss, nicht spezifiziert ist, daher die Verwirrung. – buffalol
Bitte posten Sie einige Beispieldaten, und ein Beispiel für das Ausgabe-Dataset, das Sie erstellen möchten, wird sowohl als Text in Ihrer Frage eingegeben, als auch, um zu verdeutlichen, ob Proc-Transponierung angebracht ist. – user667489