liste tous les niveaux de facteur d'un data.frame
avec str(data)
- je obtenir le head
les niveaux (1 à 2 valeurs)
fac1: Factor w/ 2 levels ... :
fac2: Factor w/ 5 levels ... :
fac3: Factor w/ 20 levels ... :
val: num ...
avec dplyr::glimpse(data)
- je obtenir plus de valeurs, mais pas d'infos sur le nombre des valeurs de facteur de niveaux. Est-il un moyen automatique pour obtenir tous les informations de l'ensemble des facteur de vars dans les données.cadre? Un court formulaire avec plus d'infos pour
levels(data$fac1)
levels(data$fac2)
levels(data$fac3)
ou plus précisément une version élégante pour quelque chose comme
for (n in names(data))
if (is.factor(data[[n]])) {
print(n)
print(levels(data[[n]]))
}
thx
Christof
source d'informationauteur ckluss
Vous devez vous connecter pour publier un commentaire.
Voici quelques options. Nous bouclons la "data" avec
sapply
et obtenir lelevels
de chaque colonne (en supposant que toutes les colonnes sontfactor
classe)Ou si nous avons besoin de tuyau (
%>%
), ce qui peut être fait commeOu une autre option est
summarise_each
dedplyr
où nous indiquer lelevels
dans lefuns
.Une méthode plus simple est d'utiliser le sqldf paquet et utiliser une instruction select distinct. Cela rend plus facile d'obtenir automatiquement les noms de niveaux de facteurs et ensuite spécifier que les niveaux pour les autres colonnes/variables.
Générique extrait de code est:
Exemple de code à l'aide de l'iris dataset:
De sortie:
Ou à l'aide de purrr:
Ou à d'abord factoriser tout:
Et de répondre à la question sur la façon d'obtenir les longueurs: