Wie man egen (stata Befehl) in R

Wie man egen (stata Befehl) in R: Berechnet eine statistische Zusammenfassung nach Gruppen und speichert sie in einer neuen Variablen. Zum Beispiel haben die Daten drei Variablen, id, time und y. Wir möchten den Mittelwert von y für jede ID berechnen und ihn dann als neue mean_y-Variable speichern.

Im Zustand wäre der Befehl

egen mean_y = mean (y), by (id)

In R kann diese Aufgabe pro Vogel ausgeführt werden

Datensatz generieren:

 

1
2
3
4
id <- rep(1:3,each=3)
t<-rep(1:3,3)
y<-sample(1:5,9,replace=T)
my_data<-data.frame(id=id,time=t,y=y)

Orignal data:

1
2
3
4
5
6
7
8
9
10
11
> my_data
  id time y
1  1    1 4
2  1    2 1
3  1    3 4
4  2    1 2
5  2    2 3
6  2    3 3
7  3    1 4
8  3    2 4
9  3    3 3
1
2
3
4
5
6
7
8
9
10
11
> within(my_data, {mean_y = ave(y,id)} )
  id time y   mean_y
1  1    1 4 3.000000
2  1    2 1 3.000000
3  1    3 4 3.000000
4  2    1 2 2.666667
5  2    2 3 2.666667
6  2    3 3 2.666667
7  3    1 4 3.666667
8  3    2 4 3.666667
9  3    3 3 3.666667

Die Standardzusammenfassungsstatistiken sind schlecht. Wir können jedoch eine bestimmte Funktion zur Berechnung von Zusammenfassungsstatistiken zuweisen. Wenn wir zum Beispiel den sd von y nach id berechnen wollen, können wir haben

1
2
3
4
5
6
7
8
9
10
11
within(my_data, {sd_y = ave(y,id,FUN=sd)} )
  id time y      sd_y
1  1    1 4 1.7320508
2  1    2 1 1.7320508
3  1    3 4 1.7320508
4  2    1 2 0.5773503
5  2    2 3 0.5773503
6  2    3 3 0.5773503
7  3    1 4 0.5773503
8  3    2 4 0.5773503
9  3    3 3 0.5773503

Anmerkung: inside wertet einen Ausdruck in einer Umgebung aus, die aus data.frame erstellt wurde. Außerdem wird der data.frame geändert und zurückgegeben (in unserem Fall werden neue Variablen erstellt, mean_y oder sd_y).

TszKin Julian Chan

Leave a Reply