/ / Median der Spalte und dann anderen Spaltenwert nachschlagen? (R) - r, excel, plyr, mean

Median der Spalte und dann anderen Spaltenwert nachschlagen? (R) - r, übertreffen, plyr, Mittelwert

Ich habe diesen Tisch:

Profession Educational_level Number
Doctor     Low               0
Doctor     Medium            5
Doctor     High              8
Nurse      Low               1
Nurse      Medium            8
Nurse      High              3
[...]

Ich möchte das Bildungsniveau der Medianperson herausfinden und am Ende folgende Tabelle erhalten:

Doctor     High
Nurse      Medium
[...]

Fragen:

  1. Wie mache ich das in R?
  2. Und in Excel?

Vielen Dank.

Antworten:

2 für die Antwort № 1

Ich empfehle die Antwort von @PaulHiemstra, wenn das Verlassen auf zusätzliche Pakete für Ihren Workflow kein Problem darstellt. Andernfalls ist dies wahrscheinlich der einfachste Weg, dies in der Basis R zu tun:

df <- read.csv(text="Profession Educational_level Number
Doctor     Low               0
Doctor     Medium            5
Doctor     High              8
Nurse      Low               1
Nurse      Medium            8
Nurse      High              3", header=TRUE)

results <- by(df, INDICES=dat$Profession,
FUN=function(subset) with(subset, Educational_level[which.max(Number)]))
data.frame(names(results), unclass(results))

1 für die Antwort № 2

Ich glaube nicht, dass Sie das mittlere Bildungsniveau pro Beruf suchen, sondern den Modus, d. H. Die Kategorie mit der höchsten Häufigkeit ddply aus dem plyr-paket:

require(plyr)
ddply(df, .(Profession), summarise,
mode_educ = Educational_level[which.max(Number)]

woher df ist der Datenrahmen, der Ihre Daten enthält.


1 für die Antwort № 3

In Excel können Sie eine solche "Matrixformel" verwenden

=INDEX(B2:B10,MATCH(1,(A2:A10="Doctor")*(C2:C10=MEDIAN(IF(A2:A10="Doctor",C2:C10))),0))

Mit STRG + UMSCHALT + EINGABETASTE bestätigen

Das funktioniert für deine Beispiele aber für eine echteMedian, wenn es zum Beispiel 4 Ärzte gab, dann liegt der Medianwert für Ärzte in der Mitte zwischen dem 2. und 3., daher möglicherweise kein Wert in der Liste. Woher wissen Sie also, welches Bildungsniveau zuzuweisen ist?