Réorganisation par occurence d'un niveau de facteur

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Tomas leon
Messages : 51
Enregistré le : 09 Jan 2018, 16:12

Réorganisation par occurence d'un niveau de facteur

Messagepar Tomas leon » 03 Fév 2018, 15:45

Bonjour à tous,

J'ai une question technique pour vous, s'il vous plait

J'ai un jeu de données "data" avec un nombre de comptage d'oiseaux. J'ai une colonne "parcelle traversée" et une colonne "nombre d'observation".

J'aimerais classer ma variable "parcelle traversée" en fonction du nombre d'occurence des niveaux de facteurs (jai essayé avec sort() et sort(table()) pensant trier en fonction des occurrences de chaque niveaux de facteurs mais cela n'a pas fonctionné). En gros je voudrais que plus il y a d'occurrences dans un level de facteur plus celui-ci à un level important dans la hiérarchie de tous les levels ( Parcelle A répétée 30 fois ; puis le E , 20 fois ; puis la R, 12 fois ; puis la B, 6 fois ; etc...) --> Et du coup je voudrais réorganiser tout mon jeu de données en fonction de cette manip pour que les autres variables suivent.


Merci à tous !

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Réorganisation par occurence d'un niveau de facteur

Messagepar Mickael Canouil » 03 Fév 2018, 17:52

Bonjour,

même si la solution n'est a priori pas compliqué, sans exemple reproductible ou un extrait des données, c'est différent...
viewtopic.php?f=1&t=7638
viewtopic.php?f=1&t=3302

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Tomas leon
Messages : 51
Enregistré le : 09 Jan 2018, 16:12

Re: Réorganisation par occurence d'un niveau de facteur

Messagepar Tomas leon » 03 Fév 2018, 18:41

Bonjour,

Ouai ok ça ressemble à ça

Code : Tout sélectionner

Parcelle <- c("A", "A", "A", "B", "B", "A", "C", "A", "C", "C", "C", "C", "C", "A", "B", "D", "D", "A", "A", "C")
obs <- c(5, 3, 4, 8, 8, 4, 9, 5, 10, 12, 11, 7, 15, 5, 4, 8, 9, 5, 8, 20)
data <- cbind.data.frame(as.factor(Parcelle), obs)


Ici A = 8, B= 3, C =7, D = 2, j'aimerais que mon facteur soit hiérarchisé comme cela : A puis C puis B puis D, soit en fonction de leurs occurrences (j'ai des centaines de parcelles).

Merci pour vos aides.

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: Réorganisation par occurence d'un niveau de facteur

Messagepar François Bonnot » 05 Fév 2018, 07:47

Bonjour,
Une solution:

Code : Tout sélectionner

df <- data.frame(Parcelle=Parcelle, obs)
df$Parcelle <- factor(df$Parcelle,levels=levels(df$Parcelle)[order(-table(df$Parcelle))])
François

Tomas leon
Messages : 51
Enregistré le : 09 Jan 2018, 16:12

Re: Réorganisation par occurence d'un niveau de facteur

Messagepar Tomas leon » 05 Fév 2018, 16:11

Bonjour à tous,

Merci François, ça marche nickel !

Guillaume Devailly
Messages : 28
Enregistré le : 22 Déc 2017, 12:31

Re: Réorganisation par occurence d'un niveau de facteur

Messagepar Guillaume Devailly » 06 Fév 2018, 15:47

Même si le problème est résolu, je me permet de rajouter une solution utilisant la package forcats:

Code : Tout sélectionner

forcats::fct_infreq(df$Parcelle)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité