web-dev-qa-db-fra.com

Valeurs uniques dans chacune des colonnes d'un bloc de données

Je souhaite obtenir le nombre de valeurs uniques dans chacune des colonnes d'un bloc de données . Disons que j'ai le bloc de données suivant:

DF <- data.frame(v1 = c(1,2,3,2), v2 = c("a","a","b","b"))

alors il devrait retourner qu'il existe 3 valeurs distinctes pour v1 et 2 pour v2.

J'ai essayé unique (DF), mais cela ne fonctionne pas car chaque ligne est différente.

24
Benoit_Plante

Ou en utilisant unique:

rapply(DF,function(x)length(unique(x)))
v1 v2 
 3  2 
26
agstudy
sapply(DF, function(x) length(unique(x)))
7
ben_says

Voici une approche:

> lapply(DF, function(x) length(table(x)))
$v1
[1] 3

$v2
[1] 2

Cela permet de tabuler les valeurs uniques par colonne. Utiliser length sur cela vous indique le nombre. Supprimer length vous montrera le tableau actuel des valeurs uniques.

5

Dans dplyr:

DF %>% summarise_all(funs(n_distinct(.)))
4
leerssej

Cela devrait fonctionner pour obtenir une valeur unique pour chaque variable:

length(unique(datasetname$variablename))
0
Jigar Pabari