Exemple 1: Anàlisi descriptiva d’una variable contínua
S’ha mesurat el perímetre craneal de 28 nens d’edat entre dos i tres anys i s’han obtingut les següents dades (en centímetres). Com es fa una descriptiva d’aquestes dades amb R?
Utilitzem la funció c()
per entrar les dades en un vector i les guardem amb el nom “perimetre” amb la fletxa enrera <-
:
perimetre <- c(41, 39.5, 43.2, 40.5, 42.3, 44.5, 38.5, 42.5, 40.3, 46.3, 45.6, 44.2, 40.1, 43.5, 40.2, 42.7, 45, 45.2, 46.7, 39.4, 41, 39, 39.6, 43, 42.8, 47.9, 46.5, 40.2)
Utilizem la funció length()
per obtenir la longitud del vector que acabem de crear i per comprovar si hem entrat totes les dades:
length(perimetre)
## [1] 28
Resums numèrics amb la funció summary()
:
summary(perimetre)
## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 38.50 40.20 42.60 42.54 44.62 47.90
Histograma amb la funció hist()
:
hist(perimetre)
Diagrama de caixes amb la funció boxplot()
:
boxplot(perimetre)
Exemple 2: Anàlisi descriptiva d’una variable categòrica
Les dades següents corresponen a les respostes de 15 pacients als quals els hi van demanar que qualifiquessin la seva percepció de dolor deprés de ser operats en una escala ordinal de 4 nivells:
- 0 -> “Sense dolor”
- 1 -> “Lleu”
- 2 -> “Moderat”
- 3 -> “Intens”
Introduir les dades:
dolor <- c(1, 0, 0, 0, 2, 0, 1, 3, 2, 1, 0, 2, 1, 0, 1)
Fes un resum numèric de la variable dolor
amb la funció summary()
summary(dolor)
## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 0.0000 0.0000 1.0000 0.9333 1.5000 3.0000
El programa R està considerant que la variable dolor
és numèrica i per això l’ha resumit amb els resums numèrics habituals: mínim, màxim, mitjana, quartils. Però aquests resums no són adeqüats per una variable categòrica.
Amb la funció factor()
podem especificar els valors (“levels”) i el nom de les categories (“labels”) de la variable dolor
i guardar la nova variable amb el nom dolor2
:
dolor2 <- factor(dolor, levels = c(0, 1, 2, 3), labels = c("sense dolor", "lleu", "moderat", "intens"))
A partir d’ara sempre que volguem analitzar la variable dolor
utilitzarem la nova variable dolor2
.
Taula de freqüències absolutes amb la funció table()
:
table(dolor2)
## dolor2 ## sense dolor lleu moderat intens ## 6 5 3 1
Taula de freqüències relatives amb la funció prop.table(table())
:
prop.table(table(dolor2))
## dolor2 ## sense dolor lleu moderat intens ## 0.40000000 0.33333333 0.20000000 0.06666667
Diagrama de barres amb la funció barplot(table())
:
barplot(table(dolor2))
Diagrama de pastís amb la funció pie(table())
:
pie(table(dolor2))
Exemple 3: Com carregar dades d’un fitxer d’excel?
Ens han passat informació sobre diferents individus en dos fitxers excel. Ara, enlloc d’introduir les dades manualment, els carreguem directament. Les fitxers son: fitxer1.xlsx i fitxer2.xlsx
NOTA: per poder carregar correctament les dades cal que els documents es trobin a la carpeta que
hem especificat com a directori de treball o bé introduir l’adreça completa d’on es troben:
Especificar directori de treball amb RStudio:
Session -> Set working directory -> choose directory
Carregar les dades del fitxer1.xlsx amb RStudio i guardar-les amb una taula (dataframe) anomenada data1:
File -> Import Data Set -> From Excel
Mireu si heu carregat bé les dades. La funcióhead()
us mostra les
primeres línees:
head(data1)
## Nom Id edat sexe ## 1 Joan 3347.12 24 H ## 2 Marta 1236.25 21 D ## 3 Carles 1703.05 24 H ## 4 Maria 3526.78 22 D ## 5 Laura 1235.24 22 D
Carregar les dades del fitxer2.xlsx amb RStudio i guardar-les amb una taula (dataframe) anomenada data2:
File -> Import Data Set -> From Excel
Mireu si heu carregat bé les dades amb la funció head()
que us mostra les primeres línees:
head(data2)
## id Height Group ## 1 1 169.3523 A ## 2 2 179.4973 B ## 3 3 188.4701 B ## 4 4 177.1345 C ## 5 5 190.4671 C ## 6 6 176.6555 C
Calculem el nombre de files de la taula data2 amb la funció nrow()
:
nrow(data2)
## [1] 18
Calculem el nombre de columnes de la taula data2 amb la funció ncol()
:
ncol(data2)
## [1] 3
Quins són els noms de les variables de la taula data2? Funció colnames()
colnames(data2)
## [1] "id" "Height" "Group"
Quin és el valor de la fila 3 i columna 2 de la taula data2?
data2[3,2] # s'especifica entre cortxets la fila i la columna, separats per coma
## [1] 188.4701
Quins són tots els valors del individu (fila) 3 de la taula data2?
data2[3,] # s'especifica la fila 3 però no s'especifica cap columna i així ens les mostra totes
## id Height Group ## 3 3 188.4701 B
Quines són les alçades (Height) dels individus de la taula data2?
data2$Height # cal especificar el nom de la taula i el nom de la variable separats per $
## [1] 169.3523 179.4973 188.4701 177.1345 190.4671 176.6555 196.5342 ## [8] 183.5473 170.9949 179.6652 170.8586 177.2399 176.8214 197.3701 ## [15] 189.7652 175.7714 168.8771 194.5206
Quines són les alçades (Height) dels primers 6 individus de la taula data2?
data2$Height[1:6] # cal especificar entre cortxets que només ens mostri els primers 6 valors de la variable
## [1] 169.3523 179.4973 188.4701 177.1345 190.4671 176.6555
Quants individus de la taula data2 tenen una alçada superior a 170?
sum(data2$Height>170)
## [1] 16
Pràctica 1: Optimització de producció in vivo d’anticossos monoclonals
- Procés que provoca la secretació en ratolins d’un fluid (ascites) que té un alt contingut d’anticossos.
- Algunes línies cel-lulars no tenen un bon creixement en animals immunocompetents i per això els animals es sotmeten a un tractament inicial de radiació que produeix una immunosupressió parcial.
- S’injecta un oli (Pristane) per aconseguir immunosupressió addicional.
- En alguns casos es torna a injectar una segona dosi de Pristane just abans de la inoculació de les cèl-lules secretores d’anticossos.
- Inoculació de les cèl-lules secretores d’anticossos cultivades prèviament in vitro.
- Els factors que poden afectar la producció d’anticossos són:
- La dosi de radiació immunosupressiva
- La quantitat d’oli injectat
- El temps entre la injecció i la inoculació de les cèl-lules
- La realització o no d’una segona injecció de Pristane
- El nombre de cèl-lules inoculades
- La fase de creixement del cultiu
- Experiment de laboratori: realització del procés de producció d’anticossos sota diferents situacions experimentals (diferents nivells dels factors).
Dades
El fitxer de dades Practica1_dades.xlsx conté vuit variables:
lab
: indicador del laboratori (de 1 a 5)tipus
: tipus de ratolí (1=normal, 2=mutat, 3=knock-out)radiacio
: Radiació inicial, en Hzq_oli
: quantitat d’oli injectat (en ml.)temps
: temps des de la injecció d’oli fins a la inoculació (en minuts)oli_2
: indicador de la segona injecció ( 0 = “NO”, 1 = “SI”)n_cel
: nombre de cèl-lules inoculades (en milions)volum
: volum d’ascites segregat (en ml.)
Qüestions
1. Baixa el fitxer Practica1_dades.xlsx a la teva carpeta de treball.
2. Crea un nou script i al final de la sessió guarda’l amb el nom pract1_elteucognom.R.
3. Especifica el teu directori de treball (on has guardat el fitxer de dades).
4. Carrega les dades i guarda-les amb el nom ratolins
.
5. Mira les primeres files de la taula de dades que has carregat amb la funció head()
.
6. Calcula els estadístics descriptius (mínim, màxim, mitjana, mediana, desviació típica i variància) de la variable volum
. Recorda que has d’especificar la variable així: ratolins$volum
(nom de la taula de dades $ nom de la variable).
7. Representa gràficament la variable volum
Quin gràfic és més apropiat en aquest cas, un diagrama de barres o un histograma?
8. Modifica el gràfic anterior de manera que les dades estiguin dividides en 10 intervals. Si no saps com fer-ho utilitza la comanda help()
o ?
.
9. Fes un resum numèric de la variable tipus
. Tenen sentit els valors resum que has obtingut?
10. Especifica la variable tipus
com a variable categòrica especificant les categories (1=normal, 2=mutat, 3=knock-out) amb la funció factor()
. Fes que la nova variable es digui tipus.cat
. Per tal que la nova variable es guardi en la taula de dades ratolins
li has d’assignar el nom ratolins$tipus.cat
.
11. Calcula el resum numèric de la nova variable tipus.cat
. Què et proporciona aquest resum numèric? Ara té sentit aquest resum numèric?
12. Dóna la taula de freqüències relatives de la variable tipus.cat
.
13. Representa gràficament la variable tipus.cat
. Quin gràfic és més apropiat en aquest cas, un diagrama de barres o un histograma?
14. Canvia el color del gràfic. Si no saps com fer-ho utilitza la comanda help()
o ?
.
15. Especifica la variable oli_2
com a categòrica amb les etiquetes: 0 = NO, 1 = SI.
16. Representa gràficament la variable oli_2
.
17. Selecciona els ratolins que han tingut una radiacció superior o igual a 235 i guarda totes les seves dades en una taula anomenada ratolins2
:
ratolins2 <- ratolins[ratolins$radiacio>=235,]
18. Fes un gràfic de la variable volum
dels ratolins amb una radiació superior o igual a 235 (és a dir, dels ratolins de la taula ratolins2
).
19. Fes un resum numèric de la variable volum
dels ratolins amb una radiació superior o igual a 235 (és a dir, dels ratolins de la taula ratolins2
).