Modalwert zweier Variablen ermitteln
Verfasst von StephanieCGross am 12 Oktober, 2007 - 09:16
Ich hab mal wieder eine Frage:
Ich habe eine Datei D, die 20 Beobachtungen und unter anderem die Variablen A1-10 und B1-B10 enthält. Nun möchte ich für für alle 20 Beobachtungen den Modalwert von A1 und B1 zusammen. Damit meine ich den Wert, der bei den 20 Beobachtungen für A1 und den 20 Beobachtungen für B1 insgesamt am häufigsten vorkommt. Dann den häufigsten Wert für A2 und B2 usw. Ich hoffe, meine Frage ist klar geworden, sonst einfach nachfragen...
Wäre toll, wenn mir jemand helfen könnte!
Danke,
StephanieCGross
»
- Anmelden oder Registrieren um Kommentare zu schreiben

TOP N Counts
Das lässt sich mit PROC SQL lösen. Die untenstehende Lösung gibt bei Gleichheit der Häufigkeitsmaxima mehrerer Werte A bzw. B nur den Datensatz mit dem kleinsten A bzw. B aus.
input a b;
datalines;
1 2
5 4
5 6
3 4
4 5
;
proc sql outobs=1 /* nur den ersten (häufigsten) Wert */;
create table modus as
select value, count(*) as count /* Werte zählen */
from ( /* A und B verketten */
select a as value from test
union all
select b as value from test
)
group by value /* für Zählung */
order by count desc, value; /* häufigste zuerst */
quit;
etwa so?
Zunächst die Spalten Ai und Bi zu jeweils einer Spalte Ci machen, was die Beobachtungszahl verdoppelt:
set QUELLE;
array a{*} a1-a10;
array b{*} b1-b10;
array c{*} c1-c10;
do i=1 to 10; c{i}=a{i}; end; output;
do i=1 to 10; c{i}=b{i}; end; output;
keep c:;
run;
Jetzt die Modalwerte der zehn Spalten berechnen:
var c:;
run;