# install.packages("dplyr")
library(dplyr)
SAVOR practicals 2
dplyr
<- read.delim("../Data/naissance.txt")
naissance
::tbl_summary(naissance) gtsummary
Characteristic | N = 1891 |
---|---|
ID | 123 (68, 176) |
AGE | 23 (19, 26) |
LWT | 121 (110, 140) |
RACE | |
1 | 96 (51%) |
2 | 26 (14%) |
3 | 67 (35%) |
SMOKE | 74 (39%) |
PTL | |
0 | 159 (84%) |
1 | 24 (13%) |
2 | 5 (2.6%) |
3 | 1 (0.5%) |
HT | 12 (6.3%) |
UI | 28 (15%) |
FVT | |
0 | 100 (53%) |
1 | 47 (25%) |
2 | 30 (16%) |
3 | 7 (3.7%) |
4 | 4 (2.1%) |
6 | 1 (0.5%) |
BWT | 2,977 (2,414, 3,475) |
1 Median (IQR); n (%) |
str(naissance)
'data.frame': 189 obs. of 10 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int 182 155 105 108 107 124 118 103 123 113 ...
$ RACE : int 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE: int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : int 0 0 0 0 0 0 0 0 0 0 ...
$ UI : int 1 0 0 1 1 0 0 0 0 0 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
$SMOKE <- factor(naissance$SMOKE, labels = c("Non-Fumeur", "Fumeur"))
naissancestr(naissance)
'data.frame': 189 obs. of 10 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int 182 155 105 108 107 124 118 103 123 113 ...
$ RACE : int 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE: Factor w/ 2 levels "Non-Fumeur","Fumeur": 1 1 2 2 2 1 1 1 2 2 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : int 0 0 0 0 0 0 0 0 0 0 ...
$ UI : int 1 0 0 1 1 0 0 0 0 0 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
Exercice 0
- Chargement du fichier de données avec
NA
<- read.csv("../Data/naissance_na.txt", sep=";") naissance_na
- Investigation de
LWT
str(naissance_na)
'data.frame': 189 obs. of 10 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : chr "." "155" "105" "108" ...
$ RACE : int 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE: int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : int 0 0 0 0 0 0 0 0 0 0 ...
$ UI : int 1 0 0 1 1 0 0 0 0 0 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
- Solution avec
na.strings = "."
<- read.csv("../Data/naissance_na.txt", sep=";", na.strings = ".")
naissance_na str(naissance_na)
'data.frame': 189 obs. of 10 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int NA 155 105 108 107 124 118 103 123 113 ...
$ RACE : int 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE: int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : int 0 0 0 0 0 0 0 0 0 0 ...
$ UI : int 1 0 0 1 1 0 0 0 0 0 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
transform()
<- transform(naissance_na,
naissance_na RACE = factor(RACE, labels = c("blanche", "noire", "autres")),
HT = factor(HT, labels = c("non", "oui")),
UI = factor(UI, labels = c("non", "oui")))
str(naissance_na)
'data.frame': 189 obs. of 10 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int NA 155 105 108 107 124 118 103 123 113 ...
$ RACE : Factor w/ 3 levels "blanche","noire",..: 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE: int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : Factor w/ 2 levels "non","oui": 1 1 1 1 1 1 1 1 1 1 ...
$ UI : Factor w/ 2 levels "non","oui": 2 1 1 2 2 1 1 1 1 1 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
transform()
encore
<- transform(naissance_na,
naissance_na POIDS = LWT * 453,
RAPPORT = BWT/POIDS
)
Error in eval(substitute(list(...)), `_data`, parent.frame()): object 'POIDS' not found
<- transform(naissance_na, POIDS = LWT * 453)
naissance_na <- transform(naissance_na, RAPPORT = BWT/POIDS)
naissance_na str(naissance_na)
'data.frame': 189 obs. of 12 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int NA 155 105 108 107 124 118 103 123 113 ...
$ RACE : Factor w/ 3 levels "blanche","noire",..: 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE : int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : Factor w/ 2 levels "non","oui": 1 1 1 1 1 1 1 1 1 1 ...
$ UI : Factor w/ 2 levels "non","oui": 2 1 1 2 2 1 1 1 1 1 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
$ POIDS : num NA 70215 47565 48924 48471 ...
$ RAPPORT: num NA 0.0363 0.0538 0.053 0.0536 ...
dplyr::mutate()
<- dplyr::mutate(naissance_na,
naissance_na POIDS2 = LWT * 453,
RAPPORT2 = BWT/POIDS2)
str(naissance_na)
'data.frame': 189 obs. of 14 variables:
$ ID : int 85 86 87 88 89 91 92 93 94 95 ...
$ AGE : int 19 33 20 21 18 21 22 17 29 26 ...
$ LWT : int NA 155 105 108 107 124 118 103 123 113 ...
$ RACE : Factor w/ 3 levels "blanche","noire",..: 2 3 1 1 1 3 1 3 1 1 ...
$ SMOKE : int 0 0 1 1 1 0 0 0 1 1 ...
$ PTL : int 0 0 0 0 0 0 0 0 0 0 ...
$ HT : Factor w/ 2 levels "non","oui": 1 1 1 1 1 1 1 1 1 1 ...
$ UI : Factor w/ 2 levels "non","oui": 2 1 1 2 2 1 1 1 1 1 ...
$ FVT : int 0 3 1 2 0 0 1 1 1 0 ...
$ BWT : int 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
$ POIDS : num NA 70215 47565 48924 48471 ...
$ RAPPORT : num NA 0.0363 0.0538 0.053 0.0536 ...
$ POIDS2 : num NA 70215 47565 48924 48471 ...
$ RAPPORT2: num NA 0.0363 0.0538 0.053 0.0536 ...
Exercice 1 : Selection de colonnes
- 10 manières de sélectionner les colonnes
- #1: le
$
str(naissance$AGE)
typeof(naissance$AGE)
int [1:189] 19 33 20 21 18 21 22 17 29 26 ...
[1] "integer"
- #2 & #3: le
[[
str(naissance[[2]])
str(naissance[["vAGE"]])
typeof(naissance[["AGE"]])
int [1:189] 19 33 20 21 18 21 22 17 29 26 ...
NULL
[1] "integer"
- #4,5 & 6 : le
[,]
str(naissance[, 2])
str(naissance[, "AGE"])
typeof(naissance[, "AGE"])
str(naissance[, "AGE", drop=FALSE])
typeof(naissance[, "AGE", drop=FALSE])
int [1:189] 19 33 20 21 18 21 22 17 29 26 ...
int [1:189] 19 33 20 21 18 21 22 17 29 26 ...
[1] "integer"
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
[1] "list"
- #7 & 8 : le
[
str(naissance[2])
typeof(naissance[2])
str(naissance["AGE"])
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
[1] "list"
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
- #9 & 10 :
subset()
str(subset(naissance, select = 2))
str(subset(naissance, select = "AGE"))
str(subset(naissance, select = AGE))
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
dplyr::select()
str(dplyr::select(naissance, 2))
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
str(dplyr::select(naissance, AGE))
'data.frame': 189 obs. of 1 variable:
$ AGE: int 19 33 20 21 18 21 22 17 29 26 ...
Exercice 2
head(naissance$c("ID", "AGE", "LWT", "SMOKE"))
Error in head(naissance$c("ID", "AGE", "LWT", "SMOKE")): attempt to apply non-function
head(naissance[[c(1:3, 5)]])
Error in .subset2(x, i, exact = exact): recursive indexing failed at level 2
head(naissance[[c("ID", "AGE", "LWT", "SMOKE")]])
Error in .subset2(x, i, exact = exact): recursive indexing failed at level 2
head(naissance[c(1:3, 5)])
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(naissance[c("ID", "AGE", "LWT", "SMOKE")])
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(naissance[,c(1:3, 5)])
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(naissance[, c("ID", "AGE", "LWT", "SMOKE")])
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(subset(naissance, select = c(1:3, 5)))
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(subset(naissance, select = c("ID", "AGE", "LWT", "SMOKE")))
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(subset(naissance, select = c(ID, AGE, LWT, SMOKE)))
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
head(dplyr::select(naissance, ID, AGE, LWT, SMOKE))
ID AGE LWT SMOKE
1 85 19 182 Non-Fumeur
2 86 33 155 Non-Fumeur
3 87 20 105 Fumeur
4 88 21 108 Fumeur
5 89 18 107 Fumeur
6 91 21 124 Non-Fumeur
Exercice 3
<- naissance[1:5, ]
premiers <- nrow(naissance)
n <- naissance[(n-5):n, ] derniers
::slice(naissance, 1:5) dplyr
ID AGE LWT RACE SMOKE PTL HT UI FVT BWT
1 85 19 182 2 Non-Fumeur 0 0 1 0 2523
2 86 33 155 3 Non-Fumeur 0 0 0 3 2551
3 87 20 105 1 Fumeur 0 0 0 1 2557
4 88 21 108 1 Fumeur 0 0 1 2 2594
5 89 18 107 1 Fumeur 0 0 1 0 2600
::slice(naissance, (n-5):n) dplyr
ID AGE LWT RACE SMOKE PTL HT UI FVT BWT
1 78 14 101 3 Fumeur 1 0 0 0 2466
2 79 28 95 1 Fumeur 0 0 0 2 2466
3 81 14 100 3 Non-Fumeur 0 0 0 2 2495
4 82 23 94 3 Fumeur 0 0 0 0 2495
5 83 17 142 2 Non-Fumeur 0 1 0 0 2495
6 84 21 130 1 Fumeur 0 1 0 3 2495
<- dplyr::slice_tail(naissance, n=5)
derns ::kable(derns) knitr
ID | AGE | LWT | RACE | SMOKE | PTL | HT | UI | FVT | BWT |
---|---|---|---|---|---|---|---|---|---|
79 | 28 | 95 | 1 | Fumeur | 0 | 0 | 0 | 2 | 2466 |
81 | 14 | 100 | 3 | Non-Fumeur | 0 | 0 | 0 | 2 | 2495 |
82 | 23 | 94 | 3 | Fumeur | 0 | 0 | 0 | 0 | 2495 |
83 | 17 | 142 | 2 | Non-Fumeur | 0 | 1 | 0 | 0 | 2495 |
84 | 21 | 130 | 1 | Fumeur | 0 | 1 | 0 | 3 | 2495 |