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 :

Derivation de variable et graphique


Sujet :

R

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Derivation de variable et graphique
    Bonjour,

    j'ai crée une nouvelles variable dérivée en classes. Le problème que je rencontre est que la classe 2 et 6 sont remplis de 0 et N/A dans la base de données donc quand je passe à la représentation en diagramme en barre de la variable pk_zone, ces deux classes sont supprimmées. Il me reste 11 niveaux au lieu de 13. J'aimerai garder mes 13 niveaux. Je ne sais pas comment faire remplacer"==1" par "==0" ne semble pas non plus fonctionner. Je vous remercie pour votre aide. Vous pouvez trouver ci-dessous mon script reprenant les dérivation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    orthos$pk_zone[orthos$pk_zone_1==1]="1/Lieu de résidence"
    orthos$pk_zone[orthos$pk_zone_2b==0]="2/Dotation intéréssante"
    orthos$pk_zone[orthos$pk_zone_3==1]="3/Aides et opportunité professionnelle"
    orthos$pk_zone[orthos$pk_zone_4==1]="4/Absence de concurrence"
    orthos$pk_zone[orthos$pk_zone_5==1]="5/Rejoindre un réseau de professionnels de santé"
    orthos$pk_zone[orthos$pk_zone_6b==0]="6/Rejoindre une maison de santé"
    orthos$pk_zone[orthos$pk_zone_7==1]="7/Autres"
    orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_4==1]="8/Lieu de résidence et absence de concurrence"
    orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1]="9/Lieu de résidence et Aides et opportunité professionnelle"
    orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_5==1]="10/Lieu de résidence et intégration dans un réseau de professionnels de santé"
    orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_7==1]="11/Lieu de résidence et autre"
    orthos$pk_zone[orthos$pk_zone_3==1 & orthos$pk_zone_4==1]="12/Aides, opportunité professionnelle et absence de concurrence"
    orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1 & orthos$pk_zone_5==1]="13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Bonjour,

    Je ne suis pas sure de bien comprendre votre question mais je tente une réponse. Il faut ajouter les niveaux manquants à l'aide de la fonction factor() avec l'option labels= :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > orthos <- data.frame(pk_zone_1=c(1,1,1,1,1,0,0),
    +                      pk_zone_2b=c(1,1,1,1,1,1,1),
    +                      pk_zone_3=c(0,0,0,0,0,1,1))
    > orthos$pk_zone[orthos$pk_zone_1==1]="1/Lieu de résidence"
    > orthos$pk_zone[orthos$pk_zone_2b==0]="2/Dotation intéressante"
    > orthos$pk_zone[orthos$pk_zone_3==1]="3/Aides et opportunité professionnelle"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > table(orthos$pk_zone)
     
    1/Lieu de résidence 3/Aides et opportunité professionnelle 
                      5                                      2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > orthos$pk_zone <- factor(orthos$pk_zone, 
    +                          levels=c("1/Lieu de résidence",
    +                                   "2/Dotation intéressante",
    +                                   "3/Aides et opportunité professionnelle"))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > table(orthos$pk_zone)
     
    1/Lieu de résidence                2/Dotation intéressante 3/Aides et opportunité professionnelle 
                      5                                      0                                      2
    Cordialement,

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    J'ai essayé cette méthode, mais ce que j'obtiens ne correspond plus à ma base. J'ai bien avec cette méthode mes 13 levels mais ma modalité 2 qui devrait être vide compte 4observations alors. Je pense que je dois coder cette modalité en 2 et plus 1 car les levels marchent de cette façon il me semble.
    Par exemple si 1=homme et 2=femme, levels(sexe)<-c("H","F"), dans le bon ordre.

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Bonjour,

    Je ne comprends pas très bien votre message.

    Pouvez-vous copier-coller le résultat de table(orthos$pk_zone) avant et après l'application de la fonction factor() avec l'option levels= ?

    Il ne doit pas y avoir de problème avec l'utilisation de l'option [CODEINLINE]levels=/CODEINLINE] puisque vous avez 13 niveaux de 1 à 13.

    Votre définition de la variable orthos$pk_zone n'est en revanche peut-être pas correcte. En effet, l'instruction orthos$pk_zone[orthos$pk_zone_2b==0]="2/Dotation intéressante" aura pour effet qu'une zone codée orthos$pk_zone_1=1 et orthos$pk_zone_2b=0 sera recodée orthos$pk_zone=2. Est-ce bien ce que vous voulez ?

    Cordialement,

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Le problème que j'évoquais pour essayer d'être plus claire j'espère y parvenir x), c'est qu'après toutes les manipulations (factor, levels et dérivation en classes), quand je fais str(orthos$pk_zone), j'obtiens :

    Factor w/ 13 levels "1/Lieu de résidence",..: 1 9 3 NA 1 NA 1 1 8 10 ..., mon second individu est codé en "9" ce qui devrait correspondre logiquement à mon neuvième niveau soit 9/Lieu de résidence et Aides et opportunité professionnelle or si je vérifie dans ma base de données excel ses réponses je vois que le second individu a répondu juste oui à la modalité 7 et donc dans ma logique devrait être codé en 7 et non en 9.

    Je précise que j'ai fais ses manipulations car ces variables correspondaient à des questions à choix multiples que je voulais traiter.


    Voici le résultat de la première table orthos$pk_zone sans application de factor ou levels :

    1/Lieu de résidence
    27
    10/Lieu de résidence et intégration dans un réseau de professionnels de santé
    4
    11/Lieu de résidence et autre
    2
    12/Aides, opportunité professionnelle et absence de concurrence
    1
    13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé
    1
    3/Aides et opportunité professionnelle
    4
    4/Absence de concurrence
    3
    5/Rejoindre un réseau de professionnels de santé
    2
    7/Autres
    3
    8/Lieu de résidence et absence de concurrence
    3
    9/Lieu de résidence et Aides et opportunité professionnelle
    1
    Ensuite voici la table après application de factor : (c'est la même il me semble)


    1/Lieu de résidence
    27
    10/Lieu de résidence et intégration dans un réseau de professionnels de santé
    4
    11/Lieu de résidence et autre
    2
    12/Aides, opportunité professionnelle et absence de concurrence
    1
    13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé
    1
    3/Aides et opportunité professionnelle
    4
    4/Absence de concurrence
    3
    5/Rejoindre un réseau de professionnels de santé
    2
    7/Autres
    3
    8/Lieu de résidence et absence de concurrence
    3
    9/Lieu de résidence et Aides et opportunité professionnelle
    1
    Voici la table obtenue après levels : (j'ai bien 13 niveaux)

    1/Lieu de résidence
    27
    2/Dotation intéréssante
    4
    3/Aides et opportunité professionnelle
    2
    4/Absence de concurrence
    1
    5/Rejoindre un réseau de professionnels de santé
    1
    6/Rejoindre une maison de santé
    4
    7/Autres
    3
    8/Lieu de résidence et absence de concurrence
    2
    9/Lieu de résidence et Aides et opportunité professionnelle
    3
    10/Lieu de résidence et intégration dans un réseau de professionnels de santé
    3
    11/Lieu de résidence et autre
    1
    12/Aides, opportunité professionnelle et absence de concurrence
    0
    13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé
    0

  6. #6
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Bonjour,

    Je n'ai pas réussi a reproduire votre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > orthos <- data.frame(pk_zone_1=c(0),
    +                      pk_zone_2b=c(0),
    +                      pk_zone_3=c(0),
    +                      pk_zone_4=c(0),
    +                      pk_zone_5=c(0),
    +                      pk_zone_6b=c(0),
    +                      pk_zone_7=c(1))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > orthos$pk_zone[orthos$pk_zone_1==1]="1/Lieu de résidence"
    > orthos$pk_zone[orthos$pk_zone_2b==0]="2/Dotation intéréssante"
    > orthos$pk_zone[orthos$pk_zone_3==1]="3/Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_4==1]="4/Absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_5==1]="5/Rejoindre un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_6b==0]="6/Rejoindre une maison de santé"
    > orthos$pk_zone[orthos$pk_zone_7==1]="7/Autres"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_4==1]="8/Lieu de résidence et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1]="9/Lieu de résidence et Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_5==1]="10/Lieu de résidence et intégration dans un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_7==1]="11/Lieu de résidence et autre"
    > orthos$pk_zone[orthos$pk_zone_3==1 & orthos$pk_zone_4==1]="12/Aides, opportunité professionnelle et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1 & orthos$pk_zone_5==1]="13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > orthos
      pk_zone_1 pk_zone_2b pk_zone_3 pk_zone_4 pk_zone_5 pk_zone_6b pk_zone_7  pk_zone
    1         0          0         0         0         0          0         1 7/Autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > orthos$pk_zone <- factor(orthos$pk_zone, 
    +                          levels=c("1/Lieu de résidence",
    +                                   "2/Dotation intéressante",
    +                                   "3/Aides et opportunité professionnelle",
    +                                   "4/Absence de concurrence",
    +                                   "5/Rejoindre un réseau de professionnels de santé",
    +                                   "6/Rejoindre une maison de santé",
    +                                   "7/Autres",
    +                                   "8/Lieu de résidence et absence de concurrence",
    +                                   "9/Lieu de résidence et Aides et opportunité professionnelle",
    +                                   "10/Lieu de résidence et intégration dans un réseau de professionnels de santé",
    +                                   "11/Lieu de résidence et autre",
    +                                   "12/Aides, opportunité professionnelle et absence de concurrence",
    +                                   "13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > orthos
      pk_zone_1 pk_zone_2b pk_zone_3 pk_zone_4 pk_zone_5 pk_zone_6b pk_zone_7  pk_zone
    1         0          0         0         0         0          0         1 7/Autres
    Pouvez-vous fournir un exemple exécutable ?

    Merci,

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Je vous remercie de votre aide précieuse. J'espère que nous arrivons à comprendre le problème. Voila l'exemple exécutable si j'ai bien compris ce que cela signifiait (je suis nouvelle)

    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
    orthos<-read.delim2("orthos.txt")
    > orthos$pk_zone[orthos$pk_zone_1==1]="1/Lieu de résidence"
    > orthos$pk_zone[orthos$pk_zone_2==1]="2/Dotation intéréssante"
    > orthos$pk_zone[orthos$pk_zone_3==1]="3/Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_4==1]="4/Absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_5==1]="5/Rejoindre un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_6==1]="6/Rejoindre une maison de santé"
    > orthos$pk_zone[orthos$pk_zone_7==1]="7/Autres"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_4==1]="8/Lieu de résidence et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1]="9/Lieu de résidence et Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_5==1]="10/Lieu de résidence et intégration dans un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_7==1]="11/Lieu de résidence et autre"
    > orthos$pk_zone[orthos$pk_zone_3==1 & orthos$pk_zone_4==1]="12/Aides, opportunité professionnelle et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1 & orthos$pk_zone_5==1]="13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"
    > 
    > orthos$pk_zone<-as.factor(orthos$pk_zone)
    > 
    > levels(orthos$pk_zone)<-c("1/Lieu de résidence","2/Dotation intéréssante","3/Aides et opportunité professionnelle","4/Absence de concurrence","5/Rejoindre un réseau de professionnels de santé","6/Rejoindre une maison de santé","7/Autres","8/Lieu de résidence et absence de concurrence","9/Lieu de résidence et Aides et opportunité professionnelle","10/Lieu de résidence et intégration dans un réseau de professionnels de santé","11/Lieu de résidence et autre","12/Aides, opportunité professionnelle et absence de concurrence","13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé")
    > str(orthos$pk_zone)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    barplot(prop.table(table(orthos$pk_zone))*100,las=2,cex.axis=0.0001,main="Répartition des orthophonistes selon la raison du choix de leur zone d'installation",col="orangered",ylim=c(0,100),ylab="Fréquence")> barplot(table(orthos$pk_zone),las=2,space=1,cex.axis=0.0001,main="Répartition des orthophonistes selon la raison du choix de leur zone d'installation",las=2,col="orangered",ylim=c(0,100),ylab="Fréquence")
    > 
    > 
    addmargins(prop.table(table(orthos$pk_zone,useNA="always"))*100)
    addmargins(table(orthos$pk_zone,useNA="always"))
    En vous remerciant,

    AZ.

  8. #8
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Bonjour,

    Pouvez-vous joindre un extrait de votre fichier pour que je puisse tester votre programme ?

    Merci,

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Script et base de données ?

    Merci beaucoup!

  10. #10
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Vous avez mis le script dans le message. Il faudrait des données pour tester.

    Cordialement,

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Voici l'extrait de la base de données pour la variable pk_zone.
    Je rappel que c'était une question à choix multiple dont chaque modalité est traité comme une variable par limesurvey.
    Vous trouverez la base en pièce jointe.

    En vous remerciant.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb dérivation de variable et graphique
    Bonjour,

    Pour une meilleure lisibilité, je définis les niveaux dans un objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    niveaux <- c("1/Lieu de résidence",
                 "2/Dotation intéréssante",
                 "3/Aides et opportunité professionnelle",
                 "4/Absence de concurrence",
                 "5/Rejoindre un réseau de professionnels de santé",
                 "6/Rejoindre une maison de santé",
                 "7/Autres",
                 "8/Lieu de résidence et absence de concurrence",
                 "9/Lieu de résidence et Aides et opportunité professionnelle",
                 "10/Lieu de résidence et intégration dans un réseau de professionnels de santé",
                 "11/Lieu de résidence et autre",
                 "12/Aides, opportunité professionnelle et absence de concurrence",
                 "13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé")
    Regardez bien mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    orthos$pk_zone <- factor(orthos$pk_zone, levels=niveaux)
    et le vôtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    orthos$pk_zone <- as.factor(orthos$pk_zone)
    levels(orthos$pk_zone) <- niveaux
    Cordialement,

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci j'ai vois mon erreur mais je pense avoir une incompréhension au niveau de la fonction levels peut-être.
    Pour moi une variable à deux niveaux, le premier niveau est codé 1 et le second 2 quand on applique levels.
    Ca voudrait dire que si 1=Homme et 2=Femmes alors toutes les femmes doivent êtres codées en 2 dans ma base, ce qui voudrait dire que je dois coder les niveaux crée pour ma variable en fonction de leur ordre d'apparition dans ma fonction levels?

    Je ne sais pas si j'exprime assez clairement mon incompréhension.

    Milles merci de prendre le temps de répondre à toutes mes questions...

    Cordialement.

  14. #14
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Pb derivation de variable et graphique
    Bonjour,

    Quelques remarques :

    • La fonction as.factor() définit des niveaux :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    > orthos <- read.csv("extrait.csv")
    > orthos$pk_zone[orthos$pk_zone_1==1]="1/Lieu de résidence"
    > orthos$pk_zone[orthos$pk_zone_2==1]="2/Dotation intéréssante"
    > orthos$pk_zone[orthos$pk_zone_3==1]="3/Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_4==1]="4/Absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_5==1]="5/Rejoindre un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_6==1]="6/Rejoindre une maison de santé"
    > orthos$pk_zone[orthos$pk_zone_7==1]="7/Autres"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_4==1]="8/Lieu de résidence et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1]="9/Lieu de résidence et Aides et opportunité professionnelle"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_5==1]="10/Lieu de résidence et intégration dans un réseau de professionnels de santé"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_7==1]="11/Lieu de résidence et autre"
    > orthos$pk_zone[orthos$pk_zone_3==1 & orthos$pk_zone_4==1]="12/Aides, opportunité professionnelle et absence de concurrence"
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1 & orthos$pk_zone_5==1]="13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"
    > orthos$pk_zone<-as.factor(orthos$pk_zone)
    > levels(orthos$pk_zone)
     [1] "1/Lieu de résidence"                                                                                                
     [2] "10/Lieu de résidence et intégration dans un réseau de professionnels de santé"                                      
     [3] "11/Lieu de résidence et autre"                                                                                      
     [4] "12/Aides, opportunité professionnelle et absence de concurrence"                                                    
     [5] "13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"
     [6] "3/Aides et opportunité professionnelle"                                                                             
     [7] "4/Absence de concurrence"                                                                                           
     [8] "5/Rejoindre un réseau de professionnels de santé"                                                                   
     [9] "7/Autres"                                                                                                           
    [10] "8/Lieu de résidence et absence de concurrence"                                                                      
    [11] "9/Lieu de résidence et Aides et opportunité professionnelle"
    • Pour ajouter des niveaux indépendamment de la fonction factor(), il faut respecter l'ordre donné par la fonction levels() qui est le même que celui donné par la fonction table() et ajouter les niveaux manquants en fin de liste.

    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
    20
    21
    22
    23
    24
    > table(orthos$pk_zone)
     
                                                                                                    1/Lieu de résidence 
                                                                                                                     27 
                                          10/Lieu de résidence et intégration dans un réseau de professionnels de santé 
                                                                                                                      4 
                                                                                          11/Lieu de résidence et autre 
                                                                                                                      2 
                                                        12/Aides, opportunité professionnelle et absence de concurrence 
                                                                                                                      1 
    13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé 
                                                                                                                      1 
                                                                                 3/Aides et opportunité professionnelle 
                                                                                                                      4 
                                                                                               4/Absence de concurrence 
                                                                                                                      3 
                                                                       5/Rejoindre un réseau de professionnels de santé 
                                                                                                                      2 
                                                                                                               7/Autres 
                                                                                                                      3 
                                                                          8/Lieu de résidence et absence de concurrence 
                                                                                                                      3 
                                                            9/Lieu de résidence et Aides et opportunité professionnelle 
                                                                                                                      1
    • Au départ la variable orthos$pk_zone est le type caractères, de sorte que "1" < "10" < "11" < "12" < "13" < "2" < "3".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > str(orthos$pk_zone)
     chr [1:61] "1/Lieu de résidence" "7/Autres" "11/Lieu de résidence et autre" NA "1/Lieu de résidence" NA ...
    • Vous auriez pu définir la variable orthos$pk_zone en numérique mais il aurais néanmoins fallu ajouter les niveaux 2 et 6 en fin de liste.
    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
    > orthos$pk_zone[orthos$pk_zone_1==1]=1
    > orthos$pk_zone[orthos$pk_zone_2==1]=2
    > orthos$pk_zone[orthos$pk_zone_3==1]=3
    > orthos$pk_zone[orthos$pk_zone_4==1]=4
    > orthos$pk_zone[orthos$pk_zone_5==1]=5
    > orthos$pk_zone[orthos$pk_zone_6==1]=6
    > orthos$pk_zone[orthos$pk_zone_7==1]=7
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_4==1]=8
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1]=9
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_5==1]=10
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_7==1]=11
    > orthos$pk_zone[orthos$pk_zone_3==1 & orthos$pk_zone_4==1]=12
    > orthos$pk_zone[orthos$pk_zone_1==1 & orthos$pk_zone_3==1 & orthos$pk_zone_5==1]=13
    > table(orthos$pk_zone)
     
     1  3  4  5  7  8  9 10 11 12 13 
    27  4  3  2  3  3  1  4  2  1  1
    • Pour réordonner les niveaux, il faut utiliser la fonction factor() avec l'option levels=, c'est-à-dire factor(orthos$pk_zone, levels=).

    Cordialement,

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Toutes les solutions fonctionnent, j'ai bien compris maintenant le rôle des fonctions levels et factor, c'était un peu confus auparavant.

    J'ai donc crée via la fonction levels tout les niveaux et j'ai rajouté en fin les niveaux manquant qui n'apparaissaient pas dans la table.
    Le problème c'est que j'ai beau appliquer la fonction suivante : factor(orthos$pk_zone,levels=niveau), je ne vois pas que mes niveaux sont réordonnés.

    Avec le premier script je vois les niveaux pris en compte

    Ensuite je rajoute les manquant en fin de liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    niveau10<-levels(orthos$pk_zone)<-c("1/Lieu de résidence",
                              "10/Lieu de résidence et intégration dans un réseau de professionnels de santé",
                              "11/Lieu de résidence et autre",
                              "12/Aides, opportunité professionnelle et absence de concurrence",
                              "13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé",
                              "4/Absence de concurrence",
                              "5/Rejoindre un réseau de professionnels de santé",
                              "7/Autres",
                              "8/Lieu de résidence et absence de concurrence",
                              "9/Lieu de résidence et Aides et opportunité professionnelle",
                              "2/Dotation intéressante",
                              "3/Aides et opportunité professionnelle",
                              "6/Rejoindre une maison de santé")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    levels(orthos$pk_zone)
    addmargins(table(orthos$pk_zone,useNA="always"))
    On voit que pour l'instant ce n'est pas ordonné, j'aimerai que ce soit ordonné selon le numéro de modalité que j'ai donné principalement pour la construction graphique.

    J'applique la fonction que vous m'avez donné, dans son détail les niveaux semblent réordonnes mais quand je vérifie avec levels() ca n'a pas bougé. J'ai également essayé les fonctions ordered() et reorder du package gdata. Je tape peut-être mal la commande ? Peut-être que je dois bien taper à la base mes niveaux dans l'ordre et que la fonction reordonne les effectifs au bon endroit ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    factor(orthos$pk_zone,levels=niveau10)
    levels(orthos$pk_zone)
    En vous remerciant.

  16. #16
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Dérivation de variable et graphique
    Bonjour,

    • D'une part vous n'avez pas affecté le résultat de la fonction factor(orthos$pk_zone,levels=niveau10) donc vous n'avez pas modifié la variable.

    • D'autre part vous réordonnez vos modalités selon l'objet niveau10 qui n'est pas trié tel que vous le souhaitez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > niveau10
     [1] "1/Lieu de résidence"                                                                                                
     [2] "10/Lieu de résidence et intégration dans un réseau de professionnels de santé"                                      
     [3] "11/Lieu de résidence et autre"                                                                                      
     [4] "12/Aides, opportunité professionnelle et absence de concurrence"                                                    
     [5] "13/Lieu de résidence, aides ou opportunité professionnelle et intégration dans un réseau de professionnels de santé"
     [6] "4/Absence de concurrence"                                                                                           
     [7] "5/Rejoindre un réseau de professionnels de santé"                                                                   
     [8] "7/Autres"                                                                                                           
     [9] "8/Lieu de résidence et absence de concurrence"                                                                      
    [10] "9/Lieu de résidence et Aides et opportunité professionnelle"                                                        
    [11] "2/Dotation intéressante"                                                                                            
    [12] "3/Aides et opportunité professionnelle"                                                                             
    [13] "6/Rejoindre une maison de santé"
    • Enfin il n'est pas utile de créer les niveaux manquants indépendamment de la fonction factor() puisque vous êtes obligée d'utiliser cette fonction pour réordonner les niveaux. Nous avons fait une petite escapade autour de la fonction levels() mais je vous invite à retourner à ma première réponse.

    Cordialement,

  17. #17
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2018
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    J'ai compris ! un grand merci pour votre persévérance et réponses à mes autres postes.

    A bientot

    AZ.

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

Discussions similaires

  1. Compilation et variable statique graphique
    Par sepiropht dans le forum Débuter
    Réponses: 6
    Dernier message: 22/07/2012, 03h42
  2. Gérer des plages variables pour graphique
    Par Marsama dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/04/2011, 18h22
  3. [Débutant] Derivée avec variable discrète
    Par hollowdeadoss dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/09/2008, 11h09
  4. separation variables de graphiques
    Par caribou65 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/06/2008, 12h23
  5. Réponses: 2
    Dernier message: 10/08/2004, 17h35

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