mam data.frame
, które wygląda następująco:kruszywa wiele wierszy o tej samej data.frame w badania opartego na wspólnych wartościach podanych w kolumnach
# set example data
df <- read.table(textConnection("item\tsize\tweight\tvalue
A\t2\t3\t4
A\t2\t3\t6
B\t1\t2\t3
C\t3\t2\t1
B\t1\t2\t4
B\t1\t2\t2"), header = TRUE)
# print example data
df
item size weight value
1 A 2 3 4
2 A 2 3 6
3 B 1 2 3
4 C 3 2 1
5 B 1 2 4
6 B 1 2 2
Jak można zobaczyć size
i weight
kolumny zrobić nie dodają żadnej złożoności, ponieważ są one takie same dla każdego item
. Jednak może być wiele różnych value
s dla tego samego item
.
chcę zwinąć data.frame mieć jeden wiersz za item
stosując średnią value
:
item size weight value
1 A 2 3 5
3 B 1 2 3
4 C 3 2 1
Chyba trzeba użyć funkcji aggregate
ale nie mogę dowiedzieć się, jak dokładnie mogę dostać powyższy wynik.
Po prostu spędziłem wiele godzin zastanawiając się, jak wektoryzować zagnieżdżone dla pętli, próbując ustalić zduplikowane wiersze i je uśrednić, umieścić je z powrotem w data.frame itd. Ta jedna linijka robi wszystko. Piękny! O inwestowaniu w więcej edukacji dzięki dokumentom na stronie https://www.rdocumentation.org/packages/plyr/versions/1.8.4/topics/ddply. Dzięki!! – mightypile