Stata ma bardzo ładne polecenie, egen
, co ułatwia obliczanie statystyk w grupie obserwacji. Na przykład, możliwe jest obliczenie maksimum, średniej i min. Dla każdej grupy i dodanie ich jako zmiennej do szczegółowego zestawu danych. Komenda Stata jest jedna linia kodu:czy istnieje odpowiednik funkcji egipskiej Staty?
by group : egen max = max(x)
Nigdy nie znaleziono tego samego polecenia w R. summarise
w pakiecie dplyr
ułatwia obliczenie statystyki dla każdej z grup, ale potem muszę uruchomić pętlę powiąż statystykę z każdą obserwacją:
library("dplyr")
N <- 1000
tf <- data.frame(group = sample(1:100, size = N, replace = TRUE), x = rnorm(N))
table(tf$group)
mtf <- summarise(group_by(tbl_df(tf), group), max = max(x))
tf$max <- NA
for (i in 1:nrow(mtf)) {
tf$max[tf$group == mtf$group[i]] <- mtf$max[i]
}
Czy ktoś ma lepsze rozwiązanie?
Istnieje wiele alternatyw. Twoje pytanie pokazuje brak badań (nawet nie studiowałeś winiety pakietu dplyr). -1 – Roland
Nie mam uprzedzeń wobec 'egen' (napisałem niektóre funkcje), ale nawet z punktu widzenia Stata jest to po prostu przydatny zbiór rzeczy do tworzenia zmiennych. Nie ma centralnej idei, która mapowałaby wszystko, co byłoby główną ideą w R. Nawet wygoda tworzenia statystyk podsumowujących według grupy nie jest w rzeczywistości częścią definicji lub roli 'egen', ale po prostu czymś możliwym z niektórymi jej składnikami. Nie będę mówił za R, ale podejrzewam, że niektóre z jego pakietów są również różne. –
Zgadzam się z tobą, ale nadal jest to bardzo przydatne. – PAC