Exemple Minimal:
dt <- data.table(a=c(1,2,3),b=c(4,5,6))
Qui ressemble à ça:
> dt
a b
1: 1 4
2: 2 5
3: 3 6
Supposons que je veuille l'indice de la colonne où il y a un 6
la valeur, dans ce jouet exemple, il est facile puisque nous savons que la colonne:
> dt[,.(b)]
b
1: 4
2: 5
3: 6
Maintenant, si ce dt
a plusieurs milliers de colonnes et nous ne savons pas d'où l' 6
des mensonges.
J'ai essayé ceci:
> dt[,.SD==6]
a b
[1,] FALSE FALSE
[2,] FALSE FALSE
[3,] FALSE TRUE
et ceci:
> dt[,lapply(.SD,`==`,6)]
a b
1: FALSE FALSE
2: FALSE FALSE
3: FALSE TRUE
et aussi que:
> dt[,lapply(.SD,function(x) any(x==6))]
a b
1: FALSE TRUE
Mais je ne peux pas obtenir de la colonne d'origine de retour:
b
1: 4
2: 5
3: 6