L'agrégat et de la Moyenne Pondérée en R
Je suis en train de calculer les actifs pondérés des retours en classe d'actifs. Pour la vie de moi, je ne peux pas comprendre comment le faire en utilisant le total de la commande.
Mon bloc de données ressemble à ceci
dat <- data.frame(company, fundname, assetclass, return, assets)
Je suis en train de faire quelque chose comme (ne pas copier cette, c'est mal):
aggregate(dat, list(dat$assetclass), weighted.mean, w=(dat$return, dat$assets))
OriginalL'auteur Brandon Bertelsen | 2010-07-29
Vous devez vous connecter pour publier un commentaire.
Pour commencer,
w=(dat$return, dat$assets))
est une erreur de syntaxe.Et plyr le rend un peu plus facile:
Il semble
aggregate
agrégats de chaque colonne wheres vous le désir de calcul sur deux colonnes. Je pense qu'il y a un moment j'utilisedoBy
ou quelque chose comme ça -- mais bon,plyr
il est plus facile et a d'autres cloches et de sifflets.Vous avez encore besoin d'apprendre au sujet de
summarise
😉J' su ce qui allait se passer 😉 Merci pour l'ondulation de la cluebat.
OriginalL'auteur Dirk Eddelbuettel
Un
data.table
solution, sera plus rapide queplyr
OriginalL'auteur mnel
C'est aussi facile à faire avec de l'agrégat. Il aide à se rappeler suppléant équations pour une moyenne pondérée.
Il existe une variété de façons de le faire poids et dans ce cas c'est le nombre d'échantillons, il est donc correct. Il n'y a plus d'une équation aux fins de la pondération. L'exécuter sur Dirk de données.
L'utilisation de
mean()
me confond ici. Il pourrait êtresum()
; à l'aide demean()
implique que nous sommes en divisant le numérateur et le dénominateur parnlevels(assetclass)
(pour les très grands ensembles de données, la moyenne peut être numériquement plus stable)Oui, pour les deux agrégats cela pourrait être réécrite en utilisant
sum
. Il s'agit de la même, parce que le rapport de deux sommes plus de longueurs égales est égal au rapport des deux modes (évidemment les dénominateurs dans la moyenne sont constants). Regardant en arrière, je ne suis même pas sûr pourquoi je mets en moyenne là-bas, alors je l'ai changé pour des sommes. J'étais peut-être en regardant à travers un livre de la moyenne pondérée des équations et sélectionné une alternative qui fonctionne.OriginalL'auteur John