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.
Ou en utilisant unique
:
rapply(DF,function(x)length(unique(x)))
v1 v2
3 2
sapply(DF, function(x) length(unique(x)))
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.
Dans dplyr
:
DF %>% summarise_all(funs(n_distinct(.)))
Cela devrait fonctionner pour obtenir une valeur unique pour chaque variable:
length(unique(datasetname$variablename))