Bonjour.
Mon pseudo est Heretic_Cris et j'ai besoin d'un coup de main pour un projet de l'université. Rassurez-vous rien de compliqué, je pense ...
J'ai un tableau avec les données et je dois le trier
Voici le concerné :
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| > ocancer
age alcohol tabac cas controles
1 25-34 0-39g/day 0-9g/day 0 40
2 25-34 0-39g/day 10-19 0 10
3 25-34 0-39g/day 20-29 0 6
4 25-34 0-39g/day 30+ 0 5
5 25-34 40-79 0-9g/day 0 27
6 25-34 40-79 10-19 0 7
7 25-34 40-79 20-29 0 4
8 25-34 40-79 30+ 0 7
9 25-34 80-119 0-9g/day 0 2
10 25-34 80-119 10-19 0 1
11 25-34 80-119 30+ 0 2
12 25-34 120+ 0-9g/day 0 1
13 25-34 120+ 10-19 1 1
14 25-34 120+ 20-29 0 1
15 25-34 120+ 30+ 0 2
16 35-44 0-39g/day 0-9g/day 0 60
17 35-44 0-39g/day 10-19 1 14
18 35-44 0-39g/day 20-29 0 7
19 35-44 0-39g/day 30+ 0 8
20 35-44 40-79 0-9g/day 0 35
21 35-44 40-79 10-19 3 23
22 35-44 40-79 20-29 1 14
23 35-44 40-79 30+ 0 8
24 35-44 80-119 0-9g/day 0 11
25 35-44 80-119 10-19 0 6
26 35-44 80-119 20-29 0 2
27 35-44 80-119 30+ 0 1
28 35-44 120+ 0-9g/day 2 3
29 35-44 120+ 10-19 0 3
30 35-44 120+ 20-29 2 4
31 45-54 0-39g/day 0-9g/day 1 46
32 45-54 0-39g/day 10-19 0 18
33 45-54 0-39g/day 20-29 0 10
34 45-54 0-39g/day 30+ 0 4
35 45-54 40-79 0-9g/day 6 38
36 45-54 40-79 10-19 4 21
37 45-54 40-79 20-29 5 15
38 45-54 40-79 30+ 5 7
39 45-54 80-119 0-9g/day 3 16
40 45-54 80-119 10-19 6 14
41 45-54 80-119 20-29 1 5
42 45-54 80-119 30+ 2 4
43 45-54 120+ 0-9g/day 4 4
44 45-54 120+ 10-19 3 4
45 45-54 120+ 20-29 2 3
46 45-54 120+ 30+ 4 4
47 55-64 0-39g/day 0-9g/day 2 49
48 55-64 0-39g/day 10-19 3 22
49 55-64 0-39g/day 20-29 3 12
50 55-64 0-39g/day 30+ 4 6
51 55-64 40-79 0-9g/day 9 40
52 55-64 40-79 10-19 6 21
53 55-64 40-79 20-29 4 17
54 55-64 40-79 30+ 3 6
55 55-64 80-119 0-9g/day 9 18
56 55-64 80-119 10-19 8 15
57 55-64 80-119 20-29 3 6
58 55-64 80-119 30+ 4 4
59 55-64 120+ 0-9g/day 5 10
60 55-64 120+ 10-19 6 7
61 55-64 120+ 20-29 2 3
62 55-64 120+ 30+ 5 6
63 65-74 0-39g/day 0-9g/day 5 48
64 65-74 0-39g/day 10-19 4 14
65 65-74 0-39g/day 20-29 2 7
66 65-74 0-39g/day 30+ 0 2
67 65-74 40-79 0-9g/day 17 34
68 65-74 40-79 10-19 3 10
69 65-74 40-79 20-29 5 9
70 65-74 80-119 0-9g/day 6 13
71 65-74 80-119 10-19 4 12
72 65-74 80-119 20-29 2 3
73 65-74 80-119 30+ 1 1
74 65-74 120+ 0-9g/day 3 4
75 65-74 120+ 10-19 1 2
76 65-74 120+ 20-29 1 1
77 65-74 120+ 30+ 1 1
78 75+ 0-39g/day 0-9g/day 1 18
79 75+ 0-39g/day 10-19 2 6
80 75+ 0-39g/day 30+ 1 3
81 75+ 40-79 0-9g/day 2 5
82 75+ 40-79 10-19 1 3
83 75+ 40-79 20-29 0 3
84 75+ 40-79 30+ 1 1
85 75+ 80-119 0-9g/day 1 1
86 75+ 80-119 10-19 1 1
87 75+ 120+ 0-9g/day 2 2
88 75+ 120+ 10-19 1 1 |
Il s'agit d'un tableau qui décrit les contrôles des cancers d' œsophage en fonction de divers paramètres comme age, consommation alcool, tabac, le nombre des contrôles et le nombre des cas positifs. Le tableau est prêt à l'emploi avec des levels. Toutefois, j'arrive avec la ligne de code suivante à effectuer un calcul de ratio ( cas/ contrôles) pour la consommation de tabac.
1 2 3 4 5
| > tribytabac <- function(t){
+ (sum(ocancer$cas[ocancer$tabac==t]))/(sum(ocancer$controle[ocancer$tabac==t]))}
> sapply(levels(ocancer$tabac),tribytabac)
0-9g/day 10-19 20-29 30+
0.1485714 0.2457627 0.2500000 0.3780488 |
Cependant, je dois arriver à faire la même chose mais en tenant compte d'age, donc l'idéal serait d'avoir quelque chose dans ce style là.
age "23-35"
0-9g/day 10-19 20-29 30+
donné 1 donné 2 donné 3 donné 4
et ça devrait être aussi pour chaque tranche d'age.
Je voudrais aussi une explication sur votre manière de faire, car je dois savoir refaire la même chose à l'examen. Merci d'avance.
Partager