Chapter 7 Manipuler les données dans R
7.1 Sélection de colonnes d’un tableau
Afficher les noms des colonnes
colnames(exprs)
## [1] "id" "WT1" "WT2" "KO1" "KO2"
Valeurs stockées dans la colonne nommée “WT1”
$WT1 exprs
## [1] 235960 116 118 450 4736 9002 1295 3353 2044 7022
## [11] 15783 3133 1380 12089 1744 122 635 83 16013 552
## [21] 62324 1225 1201 31 695 26866 273 202 3515 1988
## [31] 2238 1236 3415 209 14741 1216 4044 1405 158 90
## [41] 518 261 94 77 3025 15470 3801 1488 424 55
Notation alternative
"WT1"] exprs[ ,
## [1] 235960 116 118 450 4736 9002 1295 3353 2044 7022
## [11] 15783 3133 1380 12089 1744 122 635 83 16013 552
## [21] 62324 1225 1201 31 695 26866 273 202 3515 1988
## [31] 2238 1236 3415 209 14741 1216 4044 1405 158 90
## [41] 518 261 94 77 3025 15470 3801 1488 424 55
Sélection de plusieurs colonnes.
c("WT1", "WT2")] exprs[ ,
## WT1 WT2
## 1 235960 94264
## 2 116 71
## 3 118 174
## 4 450 655
## 5 4736 5019
## 6 9002 8623
## 7 1295 2744
## 8 3353 7449
## 9 2044 4525
## 10 7022 2526
## 11 15783 17359
## 12 3133 2775
## 13 1380 3079
## 14 12089 7958
## 15 1744 2247
## 16 122 66
## 17 635 427
## 18 83 246
## 19 16013 17642
## 20 552 1062
## 21 62324 33973
## 22 1225 1475
## 23 1201 1034
## 24 31 788
## 25 695 1825
## 26 26866 23111
## 27 273 112
## 28 202 181
## 29 3515 1981
## 30 1988 4788
## 31 2238 974
## 32 1236 2163
## 33 3415 1703
## 34 209 189
## 35 14741 36309
## 36 1216 4545
## 37 4044 2575
## 38 1405 8135
## 39 158 94
## 40 90 43
## 41 518 718
## 42 261 163
## 43 94 114
## 44 77 78
## 45 3025 3707
## 46 15470 11450
## 47 3801 2465
## 48 1488 1086
## 49 424 162
## 50 55 76
Sélection de colonnes par leur indice
2] exprs[ ,
## [1] 235960 116 118 450 4736 9002 1295 3353 2044 7022
## [11] 15783 3133 1380 12089 1744 122 635 83 16013 552
## [21] 62324 1225 1201 31 695 26866 273 202 3515 1988
## [31] 2238 1236 3415 209 14741 1216 4044 1405 158 90
## [41] 518 261 94 77 3025 15470 3801 1488 424 55
c( 3, 2)] exprs[ ,
## WT2 WT1
## 1 94264 235960
## 2 71 116
## 3 174 118
## 4 655 450
## 5 5019 4736
## 6 8623 9002
## 7 2744 1295
## 8 7449 3353
## 9 4525 2044
## 10 2526 7022
## 11 17359 15783
## 12 2775 3133
## 13 3079 1380
## 14 7958 12089
## 15 2247 1744
## 16 66 122
## 17 427 635
## 18 246 83
## 19 17642 16013
## 20 1062 552
## 21 33973 62324
## 22 1475 1225
## 23 1034 1201
## 24 788 31
## 25 1825 695
## 26 23111 26866
## 27 112 273
## 28 181 202
## 29 1981 3515
## 30 4788 1988
## 31 974 2238
## 32 2163 1236
## 33 1703 3415
## 34 189 209
## 35 36309 14741
## 36 4545 1216
## 37 2575 4044
## 38 8135 1405
## 39 94 158
## 40 43 90
## 41 718 518
## 42 163 261
## 43 114 94
## 44 78 77
## 45 3707 3025
## 46 11450 15470
## 47 2465 3801
## 48 1086 1488
## 49 162 424
## 50 76 55
7.2 Sélection de lignes d’un tableau
Sélection des lignes 4 et 11 du tableau des expressions
c(4, 11), ] exprs[
## id WT1 WT2 KO1 KO2
## 4 ENSG00000099958 450 655 301 472
## 11 ENSG00000119285 15783 17359 18591 20077
Sélection des identifiants de deux gènes d’intérêt
<- c("ENSG00000253991", "ENSG00000099958") my_genes
Vecteur booléen indiquant si chaque ID du tableau fait partie des gènes d’intérêt
$id %in% my_genes exprs
## [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
## [49] FALSE FALSE
Indices des lignes correspondant aux IDs des gènes d’intérêt
which(exprs$id %in% my_genes)
## [1] 4 44
Afficher les lignes correspondantes
which(exprs$id %in% my_genes), ] exprs[
## id WT1 WT2 KO1 KO2
## 4 ENSG00000099958 450 655 301 472
## 44 ENSG00000253991 77 78 134 92
7.3 Formulation plus intuitive
subset(x = exprs, id %in% my_genes)
## id WT1 WT2 KO1 KO2
## 4 ENSG00000099958 450 655 301 472
## 44 ENSG00000253991 77 78 134 92
Approche plus moderne, avec le package dplyr
## charger la librairie dplyr
library(dplyr)
##
## 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
## envoyer le tableau exprs à la commande filter()
%>% filter(id %in% my_genes) exprs
## id WT1 WT2 KO1 KO2
## 1 ENSG00000099958 450 655 301 472
## 2 ENSG00000253991 77 78 134 92
## plus avancé : enchaîner plusieurs commandes
%>%
exprs filter(id %in% my_genes) %>%
mutate(mean_KO = (KO1 + KO2)/2)
## id WT1 WT2 KO1 KO2 mean_KO
## 1 ENSG00000099958 450 655 301 472 386.5
## 2 ENSG00000253991 77 78 134 92 113.0