Bonjour,

Voici une table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?