0
votes

Comment appliquer le résultat d'une fonction à des facteurs d'une donnée (R)?

J'ai une fonction (LA) que je voudrais postuler à certaines données

> aggregate(all$values, by=list(all$ind), FUN=la)[,2][,1]
[1] 14.0625 64.0000


0 commentaires

3 Réponses :


2
votes

Vous pouvez utiliser AVE code>.

all$newcol1 <- with(all, ave(values, ind, FUN=function(x) x * la(x)))
all
#   values  ind   newcol
# 1      1 tata  14.0625
# 2      3 tata  42.1875
# 3      5 tata  70.3125
# 4      6 tata  84.3750
# 5      5 toto 320.0000
# 6      8 toto 512.0000
# 7      9 toto 576.0000
# 8     10 toto 640.0000


1 commentaires

Merci mais ce n'est pas exactement ce que j'aimerais faire. La nouvelle colonne doit être la première multipliée par 14.0625 pour le facteur TATA et 64.0000 pour le facteur TOTO, respectivement



2
votes

Utilisation de votre fonction personnalisée et de votre code agrégat, vous pouvez faire xxx

Cependant, si tout est tout ce que vous essayez de vous accomplir, vous n'avez pas besoin de la fonction personnalisée et de l'agrégat, et peut utiliser Le code ci-dessous à la place. xxx

ou avec données.table xxx


2 commentaires

Merci ! C'est juste ce qui est nécessaire.


@ 2WFR Si cette solution a fonctionné pour vous, n'oubliez pas de le marquer comme la réponse acceptée afin que les autres puissent le trouver plus facilement à l'avenir.



1
votes

Vous avez déjà une réponse, mais une autre solution (plus encombrante): xxx


0 commentaires