Umaru <- read.csv("C:/Users/mallah.s/Desktop/DU_Stat_ISPED/Exo_Tuto_R/Umaru.csv", sep=";", stringsAsFactors=TRUE)
um<-Umaru
View(um)
um<-transform(um,IVHX=factor(IVHX),RACE=factor(RACE),TREAT =factor(TREAT),SITE =factor(SITE),DFREE =factor(DFREE))
str(um)
## 'data.frame': 575 obs. of 9 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ AGE : int 39 33 33 32 24 30 39 27 40 36 ...
## $ BECK : Factor w/ 68 levels "0","1","10","11",..: 66 45 3 23 58 43 19 3 37 30 ...
## $ IVHX : Factor w/ 3 levels "1","2","3": 3 2 3 3 1 3 3 3 3 3 ...
## $ NDRUGTX: int 1 8 3 1 5 1 34 2 3 7 ...
## $ RACE : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ...
## $ TREAT : Factor w/ 2 levels "0","1": 2 2 2 1 2 2 2 2 2 2 ...
## $ SITE : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ DFREE : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 2 1 1 1 ...
nrow(um)
## [1] 575
transformation de la donnée BECK de facteur à numerique
um$BECK<-as.numeric(um$BECK)
calcul de la moyenne, pour etre sure d’enlever les valeurs manquantes on met na.rm=“TRUE
mean(um$BECK,na.rm ="True")
## [1] 28.60976
pour enlever les lignes avec des donées manquantes, j’ai dabord fait summary(um) pour identifier les variables ayant des données manquantes ensuite identifier les lignes et j’ai utilisé um2<-um[-c(31,36,55,114,564)]. j’e’ai trouvé cette méthode longue surtout dans le cas ou il y’aurait beaucoup plus de Na.
J’ai trouvé sur le net la fonction which(is.na(um),arr.ind=TRUE)
###methode 1a
um2<-um[-c(31,36,55,114,564),]
nrow(um2)
## [1] 570
####Méthode 2a
um3<-na.omit(um)
nrow(um3)
## [1] 570
cela nous donne 570 pour ces deux methodes, quand on utilise summary nous ne voyons plus de NA.
###methode 3
um1<-which(is.na(um),arr.ind=TRUE)[,1]
umsNa<-um[-um1,]
summary(umsNa)
## ID AGE BECK IVHX NDRUGTX
## Min. : 1.0 Min. :20.00 Min. : 1.00 1:223 Min. : 0.000
## 1st Qu.:147.2 1st Qu.:27.00 1st Qu.:11.25 2:107 1st Qu.: 1.000
## Median :289.5 Median :32.00 Median :25.00 3:240 Median : 3.000
## Mean :289.1 Mean :32.36 Mean :28.41 Mean : 4.537
## 3rd Qu.:431.8 3rd Qu.:37.00 3rd Qu.:40.00 3rd Qu.: 6.000
## Max. :575.0 Max. :56.00 Max. :68.00 Max. :40.000
## RACE TREAT SITE DFREE
## 0:425 0:285 0:396 0:423
## 1:145 1:285 1:174 1:147
##
##
##
##
nrow(umsNa)
## [1] 570
Créer une table, nommée siteA_treat1 ne contenant que les sujets ayant eu le programme de traitement souple et une durée de traitement longue
siteA_treat1<-subset(um3,um3$TREAT=="1",um3$SITE=="0",select=c(ID,AGE,BECK,IVHX,NDRUGTX,RACE,TREAT,SITE,DFREE))
## Warning in if (drop) {: la condition a une longueur > 1 et seul le premier
## élément est utilisé
siteA_treat1<-siteA_treat1[,-c(7,8)]
Ajouter une variable score à la table um
um3<- transform(um3,score=152-AGE*1.88+BECK*0.8)
Ajouter une variable DROG qui vaut 0 pour les individus sans utilisation de drogue par voie intraveineuse et avec aucun traitement anti-drogue précédent, et 1 pour les autres individus
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.5
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
um3$DROG <- with(um3, ifelse( (NDRUGTX == 0) & (IVHX=="1"),0,1))
library(epiR)
## Loading required package: survival
## Warning: package 'survival' was built under R version 4.0.5
## Package epiR 2.0.40 is loaded
## Type help(epi.about) for summary information
## Type browseVignettes(package = 'epiR') to learn how to use epiR for applied epidemiological analyses
##
epi.descriptives(um3$score)
## $arithmetic
## n mean sd q25 q50 q75 lower upper min max na
## 1 570 113.897 19.71004 98.76 111.96 127.99 79.943 153.932 67.12 165.6 0
##
## $geometric
## n mean sd q25 q50 q75 lower upper min max na
## 1 570 112.2016 0.1739436 98.76 111.96 127.99 4.381313 5.03651 67.12 165.6 0
##
## $symmetry
## skewness kurtosis
## 1 0.2934127 -0.4691413
##tracer un graphique contenant deux boites à moustaches du score de BECK, une pour les individus ayant eu une durée de traitement longue et une autre pour ceux ayant eu une durée de traitement courte.
boxplot(um3$BECK~um3$TREAT,col=c("lightpink","lightblue"),
main=" ",
ylab="Score dépression de BECK", xlab="durée du traitement à l'inclsuion",sub=paste("Score de dépression de BECK selon la durée du traitement à l'inclusion"),col.sub="blue")
##Reproduire le graphique
levels(um3$IVHX)[1]<-"jamais"
levels(um3$IVHX)[2]<-"ancienne"
levels(um3$IVHX)[3]<-"récente"
table(um3$IVHX)
##
## jamais ancienne récente
## 223 107 240
prop.table(table(um3$IVHX))
##
## jamais ancienne récente
## 0.3912281 0.1877193 0.4210526
prop.table(table(um3$IVHX))*100
##
## jamais ancienne récente
## 39.12281 18.77193 42.10526
b<-prop.table(table(um3$IVHX))*100
barplot(b, main="Répartition des individus en fonction de leur histoire \n d'utilisation de drogues par voie intraveineuse",xlab="Histoire d'utilisation",ylab="Pourcentage",col=c("red","green","blue"))