7
votes

Nombre d'uniques d'uniques par variable dans une table de données

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
  }
}


0 commentaires

4 Réponses :


1
votes

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


0 commentaires

9
votes

Mise à jour: Uniquen

à partir de la version 1.9.6, il existe une version intégrée (optimisée) de cette solution, la fonction uniquen . Maintenant, c'est aussi simple que: xxx


Si vous souhaitez trouver le nombre de valeurs uniques dans chaque colonne, quelque chose comme xxx < / pré>

Pour que votre fonction fonctionne de fonctionner, vous devez utiliser avec = false dans [. data.table ou simplement utiliser [[ à la place (lire fortune (312) aussi ...) xxx

ou xxx

fonctionnera

en une étape xxx


1 commentaires

+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é ...



4
votes

Les approches des autres réponses sont bonnes. Une autre façon d'ajouter au mélange, juste pour le plaisir: xxx

ou s'il peut y avoir des noms de colonne en double: xxx

nb: < code> (i) sur le fichier LHS de : = est une astuce pour utiliser la valeur de i plutôt qu'une colonne nommée "i" < / code>.


0 commentaires

0
votes

Il existe un moyen facile de le faire en utilisant la bibliothèque "dplyr", puis utilisez Sélectionner une fonction comme suit:

bibliothèque (dplyr)

newdata <- SELECT (OLD_DATA, première variable, deuxième variable)

Notez que, vous pouvez choisir autant de variables que vous le souhaitez.

Ensuite, vous obtiendrez le type de données que vous souhaitez.

Merci beaucoup,

Fadhah


0 commentaires