Niveaux de facteur instables dans liste capthist (SECR)

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

Elsa Bussière
Messages : 86
Enregistré le : 30 Mar 2011, 09:34
Contact :

Niveaux de facteur instables dans liste capthist (SECR)

Messagepar Elsa Bussière » 04 Mar 2017, 11:39

Bonjour,

A partir d'une base de données unique, j'ai créé une liste capthist contenant 6 dataframes (allant de A à F), tous étant construits de la même manière, avec deux colonnes:
- identification (un nom)
- sexe (m ou f)
Le nombre de lignes varie d'un dataframe à l'autre.

Pour chaque dataframe, on trouve des mâles et des femelles, sauf pour le dataframe C, qui n'a que des mâles.
Pour les dataframes A,B,D,E et F il y a deux niveaux de facteur: "m" ou "f"
En revanche, le dataframe C n'a qu'un niveau de facteur: "m"

J'aimerais résoudre ce problème.
La liste en question est obtenue ainsi:

Code : Tout sélectionner

covariates(secr.ALL)


secr.ALL étant une liste capthist:

Code : Tout sélectionner

> class(secr.ALL)
[1] "list"     "capthist"


Voici le dataframe qui pose problème:

Code : Tout sélectionner

> covariates(secr.ALL)$C
      V5
LEO10  m
LEO12  m
LEO13  m
LEO14  m
> covariates(secr.ALL)$C$V5
[1] m m m m
Levels: m


Je pensais résoudre le problème simplement ainsi, mais sans résultat:

Code : Tout sélectionner

> levels(covariates(secr.ALL)$C$V5) <- c("m","f")
> nlevels(covariates(secr.ALL)$C$V5)
[1] 1


J'ai donc pensé à créer un dataframe nouveau dataC, travailler sur lui et ensuite le remplacer dans la liste, mais une fois remplacé, le niveau de facteur retourne à 1 de nouveau:

Code : Tout sélectionner

> dataC <- covariates(secr.ALL)$C
> levels(dataC$V5) <- c("m","f")
> dataC$V5
[1] m m m m
Levels: m f
> nlevels(dataC$V5)
[1] 2
> covariates(secr.ALL)$C <- dataC
> nlevels(covariates(secr.ALL)$C$V5)
[1] 1


Je suppose que le problème vient du fait que c'est une liste capthist et pas une liste 'classique'.
Si quelqu'un a une idée, je suis preneuse.
On m'a suggéré d'utiliser la fonction attr() pour le remplacement de dataC dans la liste mais je ne sais pas comment.

Merci,
Cordialement,
Elsa
Elsa Bussière

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Re: Niveaux de facteur instables dans liste capthist (SECR)

Messagepar Nicolas Péru » 06 Mar 2017, 14:24

Bonjour,

En regardant rapidement sur le net l'aide de de la fonction subset.capthist, on trouve des arguments de la fonction qui concernent la gestion des occurrences nulles. Je ne sais pas comment tu as généré ta liste mais il semble que ton problème découle de là.

Nicolas


Retourner vers « Questions en cours »

Qui est en ligne

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