Anzahl Spalten ermitteln
Verfasst von bezNika am 23 Februar, 2010 - 16:35
Hallo, gibt es einen weg, Anzahl von Spalten zu ermitteln?
Man könnte die Tabelle transponieren und dann die Anzahl Zeilen ermitteln. Da die Tabellen ziemlich gr0ß sind, ist die Laufzeit des Programms dann dementsprechend länger.
Es gibt do sicherlich einen eleganteren weg.
Vielen Dank im Voraus.
»
- Anmelden oder Registrieren um Kommentare zu schreiben

SAS I/O Functions
Hallo.
Als macro:
%let dsid=%sysfunc(open(&lib..&dsn.,i));
/* Anzahl Beobachtungen */
%let n_obs = %sysfunc(attrn(&dsid,NOBS));
/* Anzahl Spalten */
%let n_vars = %sysfunc(attrn(&dsid,nvars));
Als Datasetfunktionen:
dsid=open("mysasdsn","i");
num=attrn(dsid,"nvars");
put num=;
rc=close(dsid);
run;
HTH
Dubravko Dolic
so geht es auch
hallo,
proc contents sollte funktionieren, es gibt aber auch eine "manuelle" Lösung mit Hilfe der Dictonary-Tabellen von SAS in der Library SASHELP:
select count(*)
into :anzahl_spalten
from sashelp.vcolumn
where libname = '
quit;
In der Macrovariable "anzahl_spalten" steht dann die Anzahl der Spalten der Tabelle.
Viele Grüsse,
Christoph
PROC CONTENTS
Mit PROC CONTENTS dürfte es funktionieren.
Weitere Idee:
Mit IML Datensatz in Matrix speichern, dann mit ncol(Matrix) die Spaltenanzahl bestimmen
PROC CONTENTS dürfte komfortabler sein.
mit proc contents hat's
mit proc contents hat's geklappt) danke-danke!