La fonction cast()
est grande au calcul des marges des valeurs globales:Puis-je faire des calculs de marge dans ddply()?
cast(df, IDx1+IDx2~IDy1, margins=c('IDx1','IDx2','grand_row'),c(min, mean, max))
Le problème est que je dois poids mes moyens utilisant un second vecteur et une fonction personnalisée.
Bien sûr, ddply()
me permet d'appliquer des fonctions d'agrégation personnalisée à mes dossiers regroupés:
ddply(d, IDx1+IDx2~IDy1 , function(x)
c(
min(x$value),
MyFancyWeightedHarmonicMeanFunction(x$value,x$weight),
max(x$value)
)
)
... et c'est génial.
Mais ce serait vraiment sauver la journée est la possibilité de faire les deux choses à la fois, que ce soit en appelant la fonction de deux vecteurs dans cast()
ou en feignant d'une certaine manière la variable margins=()
dans ddply().
Est-ce possible?
Hadley, Merci pour le conseil. Les opérations ddply séparées, assemblées, sont exactement ce que j'ai fait. J'ai toujours la tête qui résume et transforme. –
'rbind.fill' est particulièrement utile lorsque ddply renvoie des trames de données avec des nombres de colonnes différents. – Andrew