Właśnie zaczynam od ddply
i uważam, że jest to bardzo przydatne. Chcę podsumować ramkę danych, a także pozbyć się niektórych wierszy w końcowym wyniku na podstawie tego, czy sumowana kolumna ma określoną wartość. To jest jak HAVING
, a także GROUP BY
w SQL. Oto przykład:W jaki sposób można filtrować, a także podsumowywać w ddply?
input = data.frame(id= c(1, 1, 2, 2, 3, 3),
metric= c(30,50,70,90,40,1050),
badness=c(1, 5, 7, 3, 3, 99))
intermediateoutput = ddply(input, ~ id, summarize,
meanMetric=mean(metric),
maxBadness=max(badness))
intermediateoutput[intermediateoutput$maxBadness < 50,1:2]
Daje:
id meanMetric
1 1 40
2 2 80
co jest to, co chcę, ale mogę to zrobić w jednym etapie w rachunku ddply
jakoś?
Jeśli nie jesteś już mocno zaangażowany w 'plyr', to możesz odnieść korzyść bezpośrednio z' dplyr', która jest nową i ulepszoną wersją. – Ben
Po prostu upewnij się, że nie masz ich obu załadowanych w tym samym czasie. –