J'ai un code où il est plus pratique d'appeler fix
via do.call
, plutôt que directement. Tout ancien cadre de données fonctionnera pour cet exemple:Pouvez-vous utiliser le correctif via do.call?
dfr <- data.frame(x = 1:5, y = letters[1:5])
La première tentative évidente est
do.call("fix", list(dfr))
Malheureusement, cela ne fonctionne pas avec
Error in fix(list(x = 1:5, y = 1:5)) : 'fix' requires a name
, nous donnons donc un nom:
do.call("fix", list(dfr = dfr))
cette fois-ci avec NIT
Error in is.name(subx) : 'subx' is missing
Pour mémoire, edit
ne fonctionne pas non plus.
dfr <- do.call("edit", list(dfr = dfr))
Quelqu'un peut-il penser à une solution de contournement raisonnable, s'il vous plaît?
EDIT: Après réflexion, j'avais oublié que fix
déversait toujours sa réponse dans l'environnement global, ce qui est bien pour les exemples de test, mais pas si bon pour une utilisation avec des fonctions. L'excellente solution de contournement de Joshua ne s'étend pas à utiliser avec edit
.
Pour les points bonus, comment appelez-vous edit
via do.call
?
Cela fonctionne également pour 'edit'. Hourra! –
Je trouve que chaque fois que j'utilise 'substitute' a été précédé d'une session prolongée de tourettes induites par la programmation. Si quelqu'un connaît une explication simple de comment et quand l'utiliser, je serais reconnaissant. –
@Richie: essayez http://github.com/hadley/devtools/wiki/Evaluation – hadley