Bizarrerie dans une fonction avec data.table
Bonjour,
Voici une table :
Code:
1 2 3 4 5 6 7 8
| X Y NB
1: a 0 1
2: b 1 2
3: a 1 3
4: c 0 4
5: a 0 5
6: c 1 6
7: a 1 7 |
et un petit bout de code
Code:
1 2 3 4 5 6 7 8
| DT <- data.table(X=c('a','b','a','c','a','c','a'), Y=c(0,1,1,0,0,1,1), NB=1:7) ; DT
Fonction <- function(Data, V1) {
print("Sortie 1") ; print(Data[ , .(sum(NB)), by=.( V1=get(V1))])
print("Sortie 2") ; print(Data[ , .(sum(NB)), by=.(Y, V1=get(V1))])
print("Sortie 3") ; print(Data[X != 'a' , .(sum(NB)), by=.( V1=get(V1))])
print("Sortie 4") ; print(Data[X != 'a' , .(sum(NB)), by=.(Y, V1=get(V1))])
}
Fonction(DT, 'X') |
Je fais des cumuls de ma variable NB, selon les modalités des variables X et/ou Y.
Dans le 1er cas, je fais un cumul en fonction de X
Code:
1 2 3 4 5
| "Sortie 1"
V1 NB
1: a 16
2: b 2
3: c 10 |
Dans le 2nd cas, cumul selon X et Y
Code:
1 2 3 4 5 6 7
| "Sortie 2"
Y V1 NB
1: 0 a 6
2: 1 b 2
3: 1 a 10
4: 0 c 4
5: 1 c 6 |
Dans le 3ème cas, cumul selon X lorsque X != 'a'
Code:
1 2 3 4
| "Sortie 3"
V1 NB
1: b 2
2: c 10 |
Dans le 4ème cas, cumul selon X et Y lorsque X := 'a'
Code:
1 2
| "Sortie 4"
Error in get(V1) : objet 'X' introuvable |
On voit qu'il y a un message d'erreur dans ce 4ème cas, que je ne comprends pas du tout.
Est-ce que quelqu'un saurait pourquoi 'X' est introuvable, alors qu'il était trouvé dans les précédents cas ?