Agréger plusieurs lignes du même data.frame dans R en fonction des valeurs communes dans des colonnes données

J'ai un data.frame qui ressemble à ceci:

# 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

Comme vous pouvez le voir le size et weight colonnes de ne pas ajouter de la complexité, car ils sont les mêmes pour chaque item. Cependant, il peut y avoir plusieurs values pour la même item.

Je veux de l'effondrement des données.cadre pour avoir une ligne par item en utilisant la moyenne value:

  item size weight value
1    A    2      3     5
3    B    1      2     3
4    C    3      2     1

Je suppose que je dois utiliser le aggregate fonction, mais je ne pouvais pas comprendre exactement comment je peux obtenir le résultat ci-dessus.

source d'informationauteur mschilli