J'ai lu dans un gros fichier de données dans R à l'aide de la commande suivante
for (x in names(data)) { unique.obs <- length(unique(data[, x])) if (unique.obs == 1) { data[, x] <- NULL } }
4 Réponses :
Voici une solution à votre problème de base (j'espère que je l'ai bien compris).
a b c 1: 1 a 1 2: 2 b 1 3: 3 c 1 4: 4 d 1 5: 5 e 1 6: 6 f 1 7: 7 g 1 8: 8 h 1 9: 9 i 1 10: 10 j 1
Uniquen code> à partir de la version 1.9.6, il existe une version intégrée (optimisée) de cette solution, la fonction uniquen code>. Maintenant, c'est aussi simple que: p> xxx pré>
Si vous souhaitez trouver le nombre de valeurs uniques dans chaque colonne, quelque chose comme p> xxx < / pré> Pour que votre fonction fonctionne de fonctionner, vous devez utiliser avec = false code> dans [. data.table code> ou simplement utiliser [[ Code> à la place (lire fortune (312) code> aussi ...) p> xxx pré> ou p> xxx pré> fonctionnera p>
en une étape p> xxx pré> h1>
+1 Comme je l'ai dit, j'ai eu le sentiment que je pouvais simplifier mon approche ... mais je n'aurais pas monté avec votre solution. Bon sang, c'est soigné ...
Les approches des autres réponses sont bonnes. Une autre façon d'ajouter au mélange, juste pour le plaisir: ou s'il peut y avoir des noms de colonne en double: p> nb: < code> (i) code> sur le fichier LHS de : = code> est une astuce pour utiliser la valeur de
i code> plutôt qu'une colonne nommée
"i" < / code>. p> p>
Il existe un moyen facile de le faire en utilisant la bibliothèque "dplyr", puis utilisez Sélectionner une fonction comme suit: p>
bibliothèque (dplyr) p>
newdata <- SELECT (OLD_DATA, première variable, deuxième variable) P>
Notez que, vous pouvez choisir autant de variables que vous le souhaitez. P>
Ensuite, vous obtiendrez le type de données que vous souhaitez. p>
Merci beaucoup, P>
Fadhah P>