Je pense que j'obtiens une erreur de cadrage lorsque j'utilise transformBy(), une partie du paquet doBy pour R. Voici un exemple simple du problème :Erreur de définition (statistique) en utilisant transformBy(), partie du paquet doBy
> library(doBy)
>
> test.data = data.frame(
+ herp = c(1,2,3,4,5),
+ derp = c(2,3,1,3,5)
+)
>
> transformData = function(data){
+
+ five = 5
+
+ transformBy(
+ ~ herp,
+ data=data,
+ sum=herp + derp + five
+ )
+ }
>
> transformData(test.data)
Error in eval(expr, envir, enclos) : object 'five' not found
Quand je lance transformBy() dans un sous-champ (portée non globale) aucune variable ou fonctions locales semblent être disponibles pour une utilisation dans transformBy. Si, au contraire, je définis globalement ces variables ou fonctions, elles deviennent disponibles. Voici un exemple légèrement modifié qui fonctionne:
> library(doBy)
>
> test.data = data.frame(
+ herp = c(1,2,3,4,5),
+ derp = c(2,3,1,3,5)
+)
>
> five = 5
>
> transformData = function(data){
+ transformBy(
+ ~ herp,
+ data=data,
+ sum=herp + derp + five
+ )
+ }
>
> transformData(test.data)
herp derp sum
1 1 2 8
2 2 3 10
3 3 1 9
4 4 3 12
5 5 5 15
Suis-je mal compris quelque chose sur la façon dont transformBy est censé fonctionner ou est quelque chose de cassé?
Versions:
- ubuntu: 8,04 (x64)
- R: 2.10.1
- DOBY: 4.0.5
Je ne sais pas exactement ce que vous essayez de faire ici mais, si vous voulez juste ajouter des colonnes: test.data <- data.frame (herp = test.data $ herp, derp = test.data $ derp, sum = test.data $ herp + test.data $ derp + 5) –
@Brandon: voir? transformBy.Votre code n'est pas équivalent à la question OP –