library(epiDisplay)
library(epiR)
library(prettyR)
library(knitr)
library(kableExtra)
Dans un premier temps, il s’agissait de télécharger le fichier dans mon dossier local, ensuite on commit cette action et avec un push il est envoyé sur gitlab.
Ensuite il s’agit de le charger dans R :
data <- read.csv("Subject6_smoking.csv")
View(data)
Vérification du format des données :
str(data)
## 'data.frame': 1314 obs. of 3 variables:
## $ Smoker: Factor w/ 2 levels "No","Yes": 2 2 1 1 2 1 1 2 2 2 ...
## $ Status: Factor w/ 2 levels "Alive","Dead": 1 1 2 1 1 1 1 2 1 1 ...
## $ Age : num 21 19.3 57.5 47.1 81.4 36.8 23.8 57.5 24.8 49.5 ...
Tout semble ok.
L’objectif est de créer un tableau avec le nombre total de femme vivantes ou décédées sur la période en fonction des habitudes de tabagisme.
vivantes_fum <- sum(data$Status[data$Smoker=="Yes"]=="Alive")
vivantes_nonfum <- sum(data$Status[data$Smoker=="No"]=="Alive")
decedees_fum <- sum(data$Status[data$Smoker=="Yes"]=="Dead")
decedees_nonfum <- sum(data$Status[data$Smoker=="No"]=="Dead")
tab_1 <- data.frame(Vivantes = c(vivantes_fum,vivantes_nonfum), Decedees = c(decedees_fum,decedees_nonfum), row.names = c("Fumeuses","Non fumeuses"))
kable(tab_1,align = 'l')
Vivantes | Decedees | |
---|---|---|
Fumeuses | 443 | 139 |
Non fumeuses | 502 | 230 |
mort_fum <- sum(data$Status[data$Smoker=="Yes"]=="Dead")
mort_nonfum <- sum(data$Status[data$Smoker=="No"]=="Dead")
vivant_fum <-sum(data$Status[data$Smoker=="Yes"]=="Alive")
vivant_nonfum <- sum(data$Status[data$Smoker=="No"]=="Alive")
nb_fum <- sum(data$Smoker=="Yes")
nb_nonfum <- sum(data$Smoker=="No")
nb_viv <- sum(data$Status=="Alive")
nb_deces <-sum(data$Status=="Dead")
tot <- sum(data$Status=="Alive"|data$Status=="Dead")
tab_2 <- data.frame(cbind(rbind(mort_fum, vivant_fum, nb_fum)), rbind(mort_nonfum,vivant_nonfum, nb_nonfum),rbind(nb_deces,nb_viv,tot))
row.names(tab_2) <- c("Decedees", "Vivantes","Total")
names(tab_2) <- c("Fumeuses", "Non Fumeuses", "Total")
kable(tab_2,align = "c")
Fumeuses | Non Fumeuses | Total | |
---|---|---|---|
Decedees | 139 | 230 | 369 |
Vivantes | 443 | 502 | 945 |
Total | 582 | 732 | 1314 |
Ceci passe par la création d’un tableau avec les pourcentages de mortalité
tab_3 <- data.frame(cbind(rbind((sum(data$Status[data$Smoker=="Yes"]=="Dead")/sum(data$Smoker=="Yes"))*100,(sum(data$Status[data$Smoker=="Yes"]=="Alive")/sum(data$Smoker=="Yes"))*100)),
rbind((sum(data$Status[data$Smoker=="No"]=="Dead")/sum(data$Smoker=="No"))*100,(sum(data$Status[data$Smoker=="No"]=="Alive")/sum(data$Smoker=="No"))*100))
names(tab_3) <- c("Fumeuses", "Non fumeuses")
row.names(tab_3) <- c("Decedees", "Vivantes")
kable(tab_3, align = "c")
Fumeuses | Non fumeuses | |
---|---|---|
Decedees | 23.88316 | 31.42076 |
Vivantes | 76.11684 | 68.57923 |
barplot(as.matrix(tab_3), col = c("black","gray"), space = 1.5,width = 0.5)
legend("center",xpd=NA, legend = c("Decedees", "Vivantes"), fill = c("black","gray"))
# creation de la fonction :
IC = function(x) {
y <- x/100
inf = y-(1.96*sqrt((y*(1-y))/n))
sup = y+(1.96*sqrt((y*(1-y))/n))
print(c(x,inf*100,sup*100))
}
Chez les fumeuses :
x <- tab_3[1,1]
n <- as.numeric(tab_2[3,1])
IC(x)
## [1] 23.88316 20.41914 27.34719
Chez les non fumeuses :
x <- tab_3[1,2]
n <- tab_2[3,2]
IC(x)
## [1] 31.42077 28.05793 34.78360
Au vu de l’ensemble des résultats, on fait le constat suivant : Il semblerait que le taux de mortalité est plus important chez les non-fumeuses… Ceci va à l’encontre des connaissances sur le tabac, on pourrait s’attendre à ce que les non fumeuses décèdent moins.
Il s’agit de reprendre les données, cette fois-ci en fonction de la classe d’âge
data$cl_age <- as.factor(ifelse(data$Age>=18&data$Age<35,"[18;34]",
ifelse(data$Age>=35&data$Age<54,"[35;54]",
ifelse(data$Age>=55&data$Age<65,"[55;64]","[65;["))))
tab1(data$cl_age)
## data$cl_age :
## Frequency Percent Cum. percent
## [18;34] 416 31.7 31.7
## [35;54] 420 32.0 63.6
## [55;64] 236 18.0 81.6
## [65;[ 242 18.4 100.0
## Total 1314 100.0 100.0
Pour cela on utilise ce lien pour connaître la méthode.
tab_5 <- ftable(data[,c(1,2,4)])
tab_5 <- round(prop.table(tab_5,2)*100,1)
tab_5 <- rbind(tab_5, tab1(data$cl_age)$output.table[,1])
## Warning in rbind(tab_5, tab1(data$cl_age)$output.table[, 1]): number of columns
## of result is not a multiple of vector length (arg 2)
tab_5 <- as.table(tab_5)
row.names(tab_5) <- c("Non fumeuses vivantes ", "Non fumeuses decedees", "Fumeuses vivantes", "Fumeuses decedees" ,"Effectifs")
colnames(tab_5) <- c("[18;34]", "[35;54]", "[55;64]", "[65;[")
kable(tab_5,"latex", align = "c") %>% kable_styling(latex_options = "striped", stripe_index = c(1,2))
barplot(tab_5[c(1,2),], col = c("gray", "black"), width = 0.5)
legend("right",xpd=NA, legend = c("Decedees", "Vivantes"), fill = c("black","gray"))
x <- tab_5[2,1]
n <- tab_5[3,1]
IC(x)
## [1] 1.400000 -2.079537 4.879537
x <- tab_5[2,2]
n <- tab_5[3,2]
IC(x)
## [1] 4.500000 -1.543587 10.543587
x <- tab_5[2,3]
n <- tab_5[3,3]
IC(x)
## [1] 16.900000 2.790381 31.009619
x <- tab_5[2,4]
n <- tab_5[3,4]
IC(x)
## [1] 68.20000 14.60024 121.79976