j'essaie de faire appel à ddply dans une fonction.
La fonction utilisée dans ddply est là pour calculer la valeur du 3è quartile (ou 75è centile pour le coup).
Code : Tout sélectionner
f<-function(df, colGrp="group", colVal="values", s=0.75){
require(plyr)
print(colVal)
res<-ddply(df, .(colGrp), transform, seuil=quantile(colVal, eval(s)))
return(res)
}
f(dat)
Pour colGrp, pas de soucis l'évaluation se fait bien.
Pour s, obligé de passer par eval(s).
Pour colVal par contre je ne comprend pas, j'ai essayé avec eval et get mais j'ai toujours la même erreur ; pourtant le print se fait bien.
"colVal" seul :
Code : Tout sélectionner
Erreur dans eval(expr, envir, enclos) : objet 'colVal' introuvable
eval(colVal) ou get(colVal)
Code : Tout sélectionner
Erreur dans eval(colVal) : objet 'colVal' introuvable
Erreur dans get(colVal) : objet 'colVal' introuvable
Si je comprend bien, ddply ne trouve pas colVal dans l'environnement (d'ailleurs si je crée un variable colVal qui prend pour valeur le nom de la colonne "values", tout fonctionne).
Je ne vois vraiment pas comment faire.