Disons que j'ai la trame de données suivante dans R: Je voudrais créer une fonction qui supprimerait des colonnes sans variance
(par exemple, dans ce cas, il supprimerait la colonne Je sais que je pouvais vérifier à la main, mais dans la réalité, mes données sont très grandes Et je voudrais l'automatiser. Aucune idée? P> p> d_2 code> car il n'a qu'une valeur) seulement) p>
3 Réponses :
I.e. P> Filtre code> est une fonction utile ici. Je ne filtrerai que pour ceux où il y a plus de 1 valeur unique. Filter(function(x)(length(unique(x))>1), df1)
## Item_Name D_1 D_3
## 1 test1 1 11
## 2 test2 0 3
## 3 test3 1 1
serait plus efficace si vous avez vérifié min (x)! = max (x) code> (voir Stackoverflow.com/ A / 56864704/4137985 )
Vous pouvez faire:
lapply(df1[-1], var, na.rm = TRUE) != 0 # D_1 D_2 D_3 # TRUE FALSE TRUE
in Nous pouvons utiliser la même logique avec dplyr code>, nous pouvons utiliser n_distinct code> pour compter des valeurs uniques et select_if code> pour sélectionner des colonnes Purrr code> 'S Garder code> et rejeter code> p> df1[-1] %>% select_if(~sd(.) != 0)