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:
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é" |
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:
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:
1 2 3 4
| > table(orthos$pk_zone)
1/Lieu de résidence 3/Aides et opportunité professionnelle
5 2 |
Code:
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:
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,
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,
Pb dérivation de variable et graphique
Bonjour,
Je n'ai pas réussi a reproduire votre problème :
Code:
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:
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:
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:
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:
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,
Pb dérivation de variable et graphique
Bonjour,
Pouvez-vous joindre un extrait de votre fichier pour que je puisse tester votre programme ?
Merci,
Pb dérivation de variable et graphique
Vous avez mis le script dans le message. Il faudrait des données pour tester.
Cordialement,
Pb dérivation de variable et graphique
Bonjour,
Pour une meilleure lisibilité, je définis les niveaux dans un objet :
Code:
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:
orthos$pk_zone <- factor(orthos$pk_zone, levels=niveaux)
et le vôtre :
Code:
1 2
| orthos$pk_zone <- as.factor(orthos$pk_zone)
levels(orthos$pk_zone) <- niveaux |
Cordialement,
Pb derivation de variable et graphique
Bonjour,
Quelques remarques :
• La fonction as.factor() définit des niveaux :
Code:
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:
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:
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:
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,
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:
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,