Utilitzant les funcions citades en aquest Laboratori, comproveu quins paquets teniu instal·lats a la vostra versió d’RStudio i instal·leu el paquet MASS i el paquet Survival i comproveu la informació que contenen. Busqueu informació sobre el paquet Rcmdr (R Commander) des de la consola.
library() # Informa dels paquets instal·lats en RStudio i de la ruta d'ubicació.
bir <- read.table("C:\\Users\\marte\\code\\R\\PAD_R\\LAB 1\\birthwt_text.txt")
View(bir)
summary(bir$age)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 14.00 19.00 23.00 23.24 26.00 45.00
summary(bir$lwt)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 80.0 110.0 121.0 129.8 140.0 250.0
summary(bir$bwt)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 709 2414 2977 2945 3487 4990
library(readr)
bir_csv <- read.csv("C:\\Users\\marte\\code\\R\\PAD_R\\LAB 1\\birthwt.csv")
View(bir_csv)
fivenum(bir_csv$age)
## [1] 14 19 23 26 45
fivenum(bir_csv$lwt)
## [1] 80 110 121 140 250
A partir del conjunt de dades anorexia del paquet MASS, que corresponen a les dades de canvi de pes de pacients joves amb anorèxia, mostreu els tipus de dades que conté i comproveu si hi ha valors NA i NULL. Per a la variable Treat, transformeu els valors «CBT», «Cont» i FT en «Cogn Beh Tr», «Contr» i «Fam Tr», respectivament.
library("MASS")
data("anorexia")
head(anorexia) # Mostra les 5 primeres files del data frame.
## Treat Prewt Postwt
## 1 Cont 80.7 80.2
## 2 Cont 89.4 80.1
## 3 Cont 91.8 86.4
## 4 Cont 74.0 86.3
## 5 Cont 78.1 76.1
## 6 Cont 88.3 78.1
typeof(anorexia$Treat) # typeof() per mostrar el tipus de variables de cada fila.
## [1] "integer"
typeof(anorexia$Prewt)
## [1] "double"
typeof(anorexia$Postwt)
## [1] "double"
table(is.na(anorexia)) # Per saber quants valors NA hi ha.
##
## FALSE
## 216
table(is.null(anorexia)) # Per saber quants valors NULL hi ha.
##
## FALSE
## 1
anorexia_F <- factor(anorexia$Treat, levels=c("Cont", "CBT", "FT"), labels=c("Contr", "Cogn Beh Tr", "Fam Tr"))
print(anorexia_F)
## [1] Contr Contr Contr Contr Contr Contr
## [7] Contr Contr Contr Contr Contr Contr
## [13] Contr Contr Contr Contr Contr Contr
## [19] Contr Contr Contr Contr Contr Contr
## [25] Contr Contr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [31] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [37] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [43] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [49] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [55] Cogn Beh Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## [61] Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## [67] Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## Levels: Contr Cogn Beh Tr Fam Tr
# apartat a)
library(MASS)
data(biopsy)
write.csv(biopsy, file="biopsy.csv")
# apartat b)
library(openxlsx)
write.csv(Melanoma, file="Melanoma_csv.csv")
write.table(Melanoma, file="Melanoma_text.txt")
write.xlsx(Melanoma, "Melanoma_xlsx.xlsx")
# apartat c
sum_age <- summary(Melanoma$age)
sum_age
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.00 42.00 54.00 52.46 65.00 95.00
capture.output(sum_age, file="sum_age.doc")
# apartat d
library(readr)
healthcare_dataset_csv <- read_csv("C:/Users/marte/code/R/PAD_R/LAB 1/healthcare_dataset.csv.zip")
## Rows: 10000 Columns: 15
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (10): Name, Gender, Blood Type, Medical Condition, Doctor, Hospital, In...
## dbl (3): Age, Billing Amount, Room Number
## date (2): Date of Admission, Discharge Date
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(healthcare_dataset_csv)
A l’exemple següent veurem com utilitzar diferents operadors sobre el conjunt de dades birthwt, així com també algunes funcions que ens permeten obtenir més informació de les variables:
data(birthwt)
edat_max <- max(birthwt$age)
edat_max
## [1] 45
edat_min <- min(birthwt$age)
edat_min
## [1] 14
rang_edat <- edat_max - edat_min
rang_edat
## [1] 31
fumadora <- birthwt$smoke[birthwt$bwt==min(birthwt$bwt)]
fumadora
## [1] 1
if (fumadora == 0) {
print("No, la mare del nounat amb menys pes no fumava!!")
} else {
print("Sí, era fumadora!!")
}
## [1] "Sí, era fumadora!!"
pes_bwt <- birthwt$bwt[birthwt$age==max(birthwt$age)]
pes_bwt
## [1] 4990
llista <- birthwt$bwt[birthwt$ftv<=2]
llista
## [1] 2523 2557 2594 2600 2622 2637 2637 2663 2665 2722 2733 2751 2750 2769 2769
## [16] 2778 2807 2821 2835 2836 2863 2877 2877 2906 2920 2920 2920 2920 2948 2948
## [31] 2977 2977 2977 2977 2922 3005 3033 3042 3062 3062 3062 3062 3062 3090 3090
## [46] 3090 3100 3104 3132 3147 3175 3175 3203 3203 3203 3225 3225 3232 3232 3234
## [61] 3260 3274 3274 3317 3317 3317 3321 3331 3374 3374 3402 3416 3444 3459 3460
## [76] 3473 3544 3487 3544 3572 3572 3586 3600 3614 3614 3629 3629 3637 3643 3651
## [91] 3651 3651 3651 3699 3728 3756 3770 3770 3770 3790 3799 3827 3856 3860 3884
## [106] 3884 3912 3940 3941 3941 3969 3983 3997 3997 4054 4054 4111 4153 4167 4174
## [121] 4238 4593 4990 709 1021 1135 1330 1474 1588 1588 1701 1729 1790 1818 1885
## [136] 1893 1899 1928 1928 1928 1936 1970 2055 2055 2082 2084 2084 2100 2125 2187
## [151] 2187 2211 2225 2240 2240 2282 2296 2296 2325 2353 2353 2367 2381 2381 2381
## [166] 2410 2410 2410 2424 2438 2442 2466 2466 2466 2495 2495 2495
A partir del conjunt de dades anorexia treballat en apartats anteriors, creeu una matriu que tingui com a columnes els valors de Prewt i Postwt, i cada fila siguin els valors corresponents per a cada posició.
View(anorexia)
matriu_axia <- matrix(c(anorexia$Prewt, anorexia$Postwt), ncol=2)
head(matriu_axia)
## [,1] [,2]
## [1,] 80.7 80.2
## [2,] 89.4 80.1
## [3,] 91.8 86.4
## [4,] 74.0 86.3
## [5,] 78.1 76.1
## [6,] 88.3 78.1
Copia el codi següent a la teva consola per generar un data frame amb 25 registres i sis variables, i respon als apartats següents:
Identificador <- c("I1","I2","I3","I4","I5","I6","I7","I8","I9","I10","I11","I12","I13","I14",
"I15","I16","I17","I18","I19","I20","I21","I22","I23","I24","I25")
Edat <-
c(23,24,21,22,23,25,26,24,21,22,23,25,26,24,22,21,25,26,24,21,25,27,26,22,29)
Sexe <- c(1,2,1,1,1,2,2,2,1,2,1,2,2,2,1,1,1,2,2,2,1,2,1,1,2) #1 per a dones i 2 per a homes
Pes <- c(76.5,81.2,79.3,59.5,67.3,78.6,67.9,100.2,97.8,56.4,65.4,67.5,87.4,99.7,87.6
,93.4,65.4,73.7,85.1,61.2,54.8,103.4,65.8,71.7,85.0)
Alt <- c(165,154,178,165,164,175,182,165,178,165,158,183,184,164,189,167,182,179,165
,158,183,184,189,166,175) #altura en cm
Fuma <- c("SÍ","NO","SÍ","SÍ","NO","NO","NO","SÍ","SÍ","SÍ","NO","NO","SÍ","SÍ","SÍ",
"SÍ","NO","NO","SÍ","SÍ","SÍ","NO","SÍ","NO","SÍ")
Tract_Pulmo <- data.frame(Identificador,Edat,Sexe,Pes,Alt,Fuma)
Tract_Pulmo
## Identificador Edat Sexe Pes Alt Fuma
## 1 I1 23 1 76.5 165 SÍ
## 2 I2 24 2 81.2 154 NO
## 3 I3 21 1 79.3 178 SÍ
## 4 I4 22 1 59.5 165 SÍ
## 5 I5 23 1 67.3 164 NO
## 6 I6 25 2 78.6 175 NO
## 7 I7 26 2 67.9 182 NO
## 8 I8 24 2 100.2 165 SÍ
## 9 I9 21 1 97.8 178 SÍ
## 10 I10 22 2 56.4 165 SÍ
## 11 I11 23 1 65.4 158 NO
## 12 I12 25 2 67.5 183 NO
## 13 I13 26 2 87.4 184 SÍ
## 14 I14 24 2 99.7 164 SÍ
## 15 I15 22 1 87.6 189 SÍ
## 16 I16 21 1 93.4 167 SÍ
## 17 I17 25 1 65.4 182 NO
## 18 I18 26 2 73.7 179 NO
## 19 I19 24 2 85.1 165 SÍ
## 20 I20 21 2 61.2 158 SÍ
## 21 I21 25 1 54.8 183 SÍ
## 22 I22 27 2 103.4 184 NO
## 23 I23 26 1 65.8 189 SÍ
## 24 I24 22 1 71.7 166 NO
## 25 I25 29 2 85.0 175 SÍ
Seleccioneu els registres amb edat > 22.
edat_22 <- subset(Tract_Pulmo, Edat > 22)
edat_22
## Identificador Edat Sexe Pes Alt Fuma
## 1 I1 23 1 76.5 165 SÍ
## 2 I2 24 2 81.2 154 NO
## 5 I5 23 1 67.3 164 NO
## 6 I6 25 2 78.6 175 NO
## 7 I7 26 2 67.9 182 NO
## 8 I8 24 2 100.2 165 SÍ
## 11 I11 23 1 65.4 158 NO
## 12 I12 25 2 67.5 183 NO
## 13 I13 26 2 87.4 184 SÍ
## 14 I14 24 2 99.7 164 SÍ
## 17 I17 25 1 65.4 182 NO
## 18 I18 26 2 73.7 179 NO
## 19 I19 24 2 85.1 165 SÍ
## 21 I21 25 1 54.8 183 SÍ
## 22 I22 27 2 103.4 184 NO
## 23 I23 26 1 65.8 189 SÍ
## 25 I25 29 2 85.0 175 SÍSeleccioneu l’element 3 de la columna 4 del conjunt de dades (comptant l’identificador).
element_3_4 <- Tract_Pulmo[3, 4]
element_3_4
## [1] 79.3Useu l’ordre subset() per seleccionar totes les files que tenen una edat més petita que 27 anys i sense incloure la columna Alt.
menor27_menysAlt <- subset(Tract_Pulmo, Edat < 27, select = -c(Alt))
menor27_menysAlt
## Identificador Edat Sexe Pes Fuma
## 1 I1 23 1 76.5 SÍ
## 2 I2 24 2 81.2 NO
## 3 I3 21 1 79.3 SÍ
## 4 I4 22 1 59.5 SÍ
## 5 I5 23 1 67.3 NO
## 6 I6 25 2 78.6 NO
## 7 I7 26 2 67.9 NO
## 8 I8 24 2 100.2 SÍ
## 9 I9 21 1 97.8 SÍ
## 10 I10 22 2 56.4 SÍ
## 11 I11 23 1 65.4 NO
## 12 I12 25 2 67.5 NO
## 13 I13 26 2 87.4 SÍ
## 14 I14 24 2 99.7 SÍ
## 15 I15 22 1 87.6 SÍ
## 16 I16 21 1 93.4 SÍ
## 17 I17 25 1 65.4 NO
## 18 I18 26 2 73.7 NO
## 19 I19 24 2 85.1 SÍ
## 20 I20 21 2 61.2 SÍ
## 21 I21 25 1 54.8 SÍ
## 23 I23 26 1 65.8 SÍ
## 24 I24 22 1 71.7 NO
Incorporeu el dataset ChickWeight que conté informació sobre el pes de 578 pollets en grams (weight), el temps des del mesurament en néixer (Time), una variable identificadora de cada pollet (Chick) a partir del rang de pes i una variable factor amb el tipus de dieta experimental que cada pollet va rebre (Diet).
data("ChickWeight")
plot(ChickWeight$weight, col="purple3", main="Weight")
boxplot(ChickWeight$Time, col="green3", main="Time")
A partir del conjunt de dades anorexia del paquet MASS, creeu un altre data frame que s’anomeni anorexia_treat_df format per Treat i per un vector nou calculat a partir de la diferència Prewt-Postwt. D’aquesta manera, ens quedarà un data frame que contingui el tipus de tractament i el valor del pes guanyat o perdut després d’haver fet el tractament.
Seleccioneu aquells individus que han guanyat pes després del tractament i creeu un nou conjunt anomenat anorexia_treat_C_df que contingui només les dades d’aquells que han seguit el tractament «Cont» i que han guanyat pes després del tractament.
diffwt <- anorexia$Prewt - anorexia$Postwt # si la resta és del pes inicial menys el pes final, la diferència dels que han guanyat de pes serà negativa "x < 0".
Treat <- anorexia$Treat
anorexia_treat_df <- data.frame(Treat, diffwt)
anorexia_treat_df
## Treat diffwt
## 1 Cont 0.5
## 2 Cont 9.3
## 3 Cont 5.4
## 4 Cont -12.3
## 5 Cont 2.0
## 6 Cont 10.2
## 7 Cont 12.2
## 8 Cont -11.6
## 9 Cont 7.1
## 10 Cont -6.2
## 11 Cont 0.2
## 12 Cont 9.2
## 13 Cont -8.3
## 14 Cont -3.3
## 15 Cont -11.3
## 16 Cont 0.0
## 17 Cont 1.0
## 18 Cont 10.6
## 19 Cont 4.6
## 20 Cont 6.7
## 21 Cont -2.8
## 22 Cont -0.3
## 23 Cont -1.8
## 24 Cont -3.7
## 25 Cont -15.9
## 26 Cont 10.2
## 27 CBT -1.7
## 28 CBT -0.7
## 29 CBT 0.1
## 30 CBT 0.7
## 31 CBT 3.5
## 32 CBT -14.9
## 33 CBT -3.5
## 34 CBT -17.1
## 35 CBT 7.6
## 36 CBT -1.6
## 37 CBT -11.7
## 38 CBT -6.1
## 39 CBT -1.1
## 40 CBT 4.0
## 41 CBT -20.9
## 42 CBT 9.1
## 43 CBT -2.1
## 44 CBT 1.4
## 45 CBT -1.4
## 46 CBT 0.3
## 47 CBT 3.7
## 48 CBT 0.8
## 49 CBT -2.4
## 50 CBT -12.6
## 51 CBT -1.9
## 52 CBT -3.9
## 53 CBT -0.1
## 54 CBT -15.4
## 55 CBT 0.7
## 56 FT -11.4
## 57 FT -11.0
## 58 FT -5.5
## 59 FT -9.4
## 60 FT -13.6
## 61 FT 2.9
## 62 FT 0.1
## 63 FT -7.4
## 64 FT -21.5
## 65 FT 5.3
## 66 FT 3.8
## 67 FT -13.4
## 68 FT -13.1
## 69 FT -9.0
## 70 FT -3.9
## 71 FT -5.7
## 72 FT -10.7
anorexia_treat_C_df <- subset(anorexia_treat_df, Treat == "Cont" & diffwt < 0)
anorexia_treat_C_df
## Treat diffwt
## 4 Cont -12.3
## 8 Cont -11.6
## 10 Cont -6.2
## 13 Cont -8.3
## 14 Cont -3.3
## 15 Cont -11.3
## 21 Cont -2.8
## 22 Cont -0.3
## 23 Cont -1.8
## 24 Cont -3.7
## 25 Cont -15.9
Entreu a RPubs i registreu-vos. Creeu-vos un perfil i pugeu un document R Markdown. Els prerequisits són tenir instal·lat R i RStudio (v0.96.230 o més), i el paquet knitr (v0.5 o més). Passos que heu de seguir per publicar el vostre document:
En RStudio, creeu un document R Markdown.
Genereu el document amb Knit.
A la finestra de previsualització, cliqueu el botó de publicar. Com a solució del vostre exercici, copieu l’enllaç de la vostra pàgina de prova d’RPubs.