IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Problème de facteur et de niveau


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Par défaut Problème de facteur et de niveau
    Bonjour à tous,

    Je rencontre avec mon code quelques soucis liés au facteurs et à leurs différents niveaux.

    Je dispose de deux tableaux, int et env. Je souhaiterais récupérer dans int les lignes pour lesquelles la colonne n est égale à une certaine valeur, prise dans le tableau env.
    En code, cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a <- subset(int, int$poscar==env[i,1])
    Le problème, c'est que mon env[i,1] n'est pas une valeur mais un facteur. Il y a donc une erreur de niveau.
    Savez vous s'il est possible de ne récupérer que la valeur de env[i,1] ?

    Merci beaucoup !

    Pour rendre cette histoire un peu plus claire, lorsque j'exécute

    env[i,1]

    j'obtiens

    [1] 97 12398727
    32 Levels: 88 141768 88 32679004 88 93097188 89 141768 89 19919597 92 7031007 93 128343374 96 58620026 97 58620026 98 32679004 98 8898979 99 32679004 ... 99 58906674

    alors que je souhaiterais juste obtenir
    97 12398727

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Par défaut
    Vous pouvez convertir un facteur en chaine de caractère avec la fonction as.character.

    Si vous utilisez read.table ou une de ses variantes (read.csv2 etc.), vous pouvez ajoutter l'argument stringsAsFactors = FALSE pour importer les données directement en temps de chaine de caractère.

    Sinon si vous souhaitez conserver les facteurs, vous pouvez faire en sorte qu'ils aient les même niveaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    factorA = factor(c("a","b","c"))
    factorB = factor(c("a","b","d"))
     
    levelsAll = union(levels(factorA ),levels(factorB))
     
    levels(factorA) = levelsAll 
    levels(factorB) = levelsAll

  3. #3
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    tu peux passer par d'autres fonctions que la fonction subset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # ce qui t'intéresse :
    x <- factor(c("1 200", "97 12398727"))
    x
    [1] 1 200       97 12398727
    Levels: 1 200 97 12398727
     
    # la valeur à laquelle x doit être égale :
    y <- factor("97 12398727", levels = c(1:20, "97 12398727"))
    y
    [1] 97 12398727
    Levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 97 12398727
     
    subset(x == y)
    Error in Ops.factor(x, y) : les niveaux des facteurs diffèrent
     
    # oui mais :
    x[x%in%y]
    [1] 97 12398727
    Levels: 1 200 97 12398727
    cdlt

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Par défaut
    Bonjour !

    Merci à vous ! J'ai effectivement utilisé as.character, ce qui me convenait parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème création requete SQL. Difficulté niveau Cas d'école.
    Par piscou51000 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/05/2009, 09h22
  2. [Exchange 2007] Problème de réception après mise à niveau vers SP1
    Par papillange dans le forum Exchange Server
    Réponses: 0
    Dernier message: 26/04/2009, 17h48
  3. Réponses: 4
    Dernier message: 27/03/2008, 20h16
  4. problème au niveau de restore database
    Par Redouane dans le forum Administration
    Réponses: 2
    Dernier message: 07/09/2005, 11h49
  5. [DNS MX]Avec DynDNS.org, problème au niveau du MX
    Par Swoög dans le forum Développement
    Réponses: 9
    Dernier message: 24/08/2004, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo