Bonjour,
J'ai à nouveau quelque soucis dans l'analyse de certaines données.
Point1: J'ai un tableau (voir les premières lignes ci dessous) avec une colonne Verif et une colonne taille et je voudrais dans un premier temps avoir le % de chaque facteur de verif en fonction de différents intervalles de taille. J'ai plus ou moins réussi avec la fonction cut de tydiverse mais lorsque je n'ai pas certaines taille pour un facteur ça ne le prends pas en compte (exemple j'ai aucune taille entre 20 et 30 pour "lundi2" et j'aimerai que ces tailles apparaissent en mettant 0).
Comment pourrais-je régler ces deux soucis ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Verif Taille 2 Lundi1 28 4 Lundi2 12 7 Lundi2 3 20 Lundi2 5 24 NA 1 36 Lundi1 1 40 Lundi1 4 50 Jeudi1 1 52 Lundi1 18 53 Lundi1 1
J'obtiens donc grâce à ce code ce tableau (avec le nombre d'occurrence en 3ieme colonne et le pourcentage en 4ième colonne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 resume= tab %>% group_by(Verif) %>% group_by(size = cut(Taille,breaks=c(0,11,20,30,40,50,60,300)), .add = TRUE) %>% count() %>% ungroup() %>% group_by(size) %>% mutate(pct = round(n/sum(n)*100,2),)
Point2: Mais j'aimerai pouvoir ensuite le transformer en tableau à double entré avec en lignes les différents facteurs "lundi1" "mardi1" "jeudi1" (sans celui ci " ") et en colonnes les différents intervalles de tailles et à l'intersection des lignes et des colonnes je voudrais le pourcentage correspondant comme sur l'image ci dessous. Et enfin j'aimerai rajouter une dernière ligne "nombre" avec la somme du nombre de tailles comprises dans chaque intervalles (voir également image ci dessous).
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 # A tibble: 16 x 4 # Groups: size [7] size Verif n pct <fct> <chr> <int> <dbl> 1 (0,11] Lundi1 10 7.04 2 (0,11] Mardi1 10 7.04 3 (0,11] NA 122 85.9 4 (11,20] Lundi1 1 4.17 5 (11,20] Mardi1 1 4.17 6 (11,20] NA 22 91.7 7 (20,30] Mardi1 3 14.3 8 (20,30] NA 18 85.7 9 (30,40] Lundi1 1 11.1 10 (30,40] NA 8 88.9 11 (40,50] Mardi1 1 8.33 12 (40,50] NA 11 91.7 13 (50,60] Lundi1 2 22.2 14 (50,60] NA 7 77.8 15 (60,300] Jeudi1 5 11.9 16 (60,300] NA 37 88.1
Quelle fonction pourrais je utiliser pour faire cela ?
J'ai vu pas mal de fonctions qui transforment un tableau en faisant pivoter des colonnes en lignes ou inversement en fonction d'une colonne/ ligne qui ne bouge pas, mais je n'ai rien vu pour mettre les valeurs d'une variable en intersection de deux autres...
Merci d'avance pour votre aide
Aline
Partager