☞ xuleta d’R

Fitxers de dades

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)

plot of chunk unnamed-chunk-4

Diagrama de caixes amb la funció boxplot():

  boxplot(perimetre)

plot of chunk unnamed-chunk-5

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))

plot of chunk unnamed-chunk-11

Diagrama de pastís amb la funció pie(table()):

    pie(table(dolor2))

plot of chunk unnamed-chunk-12

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 Hz
  • q_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).