EXERCICIS

Exercici 1

Utilitzant les funcions citades en aquest Laboratori, comproveu quins paquets teniu instal·lats a la vostra versió d’RStudio.

library()

Instal·leu el paquet MASS i el paquet Survival i comproveu la informació que contenen.

install.packages(c("MASS","survival"))
packageDescription("MASS") # Accedim a la 'fitxa tècnica' del paquet MASS
help(package = "MASS") # Ens dona informació sobre les funcions del paquet MASS
packageDescription("survival") # Accedim a la 'fitxa tècnica' del paquet survival
help(package = "survival") # Ens dona informació sobre les funcions del paquet survival

Busqueu informació sobre el paquet Rcmdr (R Commander) des de la consola.

# Tenim dues opcions, depenent de si el paquet està instal·lat o no.
# Si està instal·lat, és a dir, hem executat install.packages ("Rcmdr"):
help(package = "Rcmdr")

# Si no està instal·lat i de forma més eficient:
??rcmdr

Exercici 2

** a) Importeu un arxiu de text i busqueu un summary() de tres variables que trieu.**

library(readr) #Importem la llibreria readr
exemple_txt <- read.table("quakes.txt", header=TRUE) # Importem l'arxiu .txt "quakes" i el definim com a exemple_txt. Header = TRUE indica a R que la primera fila és un encapçalment
View(exemple_txt) # Visualitzem les dades de l'arxiu
summary(exemple_txt[c("lat","long","mag")]) # Triem tres variables de l'arxiu per a l'anàlisi. 
##       lat              long            mag      
##  Min.   :-38.59   Min.   :165.7   Min.   :4.00  
##  1st Qu.:-23.47   1st Qu.:179.6   1st Qu.:4.30  
##  Median :-20.30   Median :181.4   Median :4.60  
##  Mean   :-20.64   Mean   :179.5   Mean   :4.62  
##  3rd Qu.:-17.64   3rd Qu.:183.2   3rd Qu.:4.90  
##  Max.   :-10.72   Max.   :188.1   Max.   :6.40

** b) Importeu un arxiu «.csv» i busqueu un fivenum() de dues variables que us semblin rellevants per a l’estudi.**

library(readr) # Carreguem la llibreria
cotxes_csv <- read.csv("cotxes.csv", header=TRUE) # Importem l'arxiu .csv "cotxes"
head(cotxes_csv) # Funció per veure si els resultats s'han importat correctament
##    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## 4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## 5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## 6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
fivenum(cotxes_csv$hp) # Busquem cinc estadístics de la variable hp (potència)
## [1]  52  96 123 180 335
fivenum(cotxes_csv$gear) # Busquem cinc estadístics de la variable gear (marxes)
## [1] 3 3 4 4 5

Exercici 3

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")
View(anorexia) # Visualitzem les dades d'anorexia
str(anorexia) # Mostrem el tipus de dades que conté el dataset
## 'data.frame':    72 obs. of  3 variables:
##  $ Treat : Factor w/ 3 levels "CBT","Cont","FT": 2 2 2 2 2 2 2 2 2 2 ...
##  $ Prewt : num  80.7 89.4 91.8 74 78.1 88.3 87.3 75.1 80.6 78.4 ...
##  $ Postwt: num  80.2 80.1 86.4 86.3 76.1 78.1 75.1 86.7 73.5 84.6 ...
# Per comprovar si tenim NA
colSums(is.na(anorexia)) # Fem un sumatori de tots els NA que hi pugui haver a cada columna
##  Treat  Prewt Postwt 
##      0      0      0
is.null(anorexia) # Trobem si anorexia és null
## [1] FALSE
# Transformem els valors amb la funció factor
anorexia_transf <- factor(anorexia$Treat,
                          levels = c("CBT","Cont","FT"),
                          labels = c("Cogn Beh Tr","Contr","Fam Tr"))
summary(anorexia_transf) # Confirmem que els canvis s'han aplicat
## Cogn Beh Tr       Contr      Fam Tr 
##          29          26          17

Exercici 4

  1. Exporteu les dades biopsy del paquet MASS a un arxiu «.csv.»
  2. Exporteu les dades melanoma del paquet MASS a arxius de tres diferents formats i
    comproveu que s’han creat els diferents arxius en els formats i les rutes especificats.
    Podeu generar una captura de pantalla de la seva ubicació a la carpeta.
  3. Genereu un resum (summary) de la variable age de melanoma i deseu la sortida que us apareix en un document .doc
  4. Busqueu un data frame en algun repositori de dades de Biomedicina, descarregueu un conjunt de dades en «.csv» i importeu aquest fitxer a un document R Markdown usant el codi o el menú d’importació d’RStudio.
# A)
library(MASS) # Carreguem la llibreria MASS
data("biopsy") # Obtenim el dataset biopsy
write.csv(biopsy, file="/Users/carle/Documents/r_files/biopsy.csv") # Exportem la informació del dataset biopsy a un arxiu .csv a la direcció que hi hem especificat dins de "Documents"

# B)
data("Melanoma") #Obtenim el dataset Melanoma

write.table(Melanoma, "/Users/carle/Documents/r_files/Melanoma.txt",sep=) # Exportem el dataset a un arxiu amb format .txt
write.csv(Melanoma, "/Users/carle/Documents/r_files/Melanoma.csv") # Exportem el dataset a un arxiu amb format .csv
library(foreign)
write.foreign(Melanoma,"/Users/carle/Documents/r_files/Melanoma.txt","/Users/carle/Documents/r_files/Melanoma.spss",package="SPSS") # Exportem el dataset a un arxiu amb format .spss
Captura
Captura
# C)
library(MASS)
data("Melanoma") # Carreguem el dataser Melanoma
resum_age <- summary(Melanoma$age) # Definim que resum_age és el summary de la columna "age" fins del dataset melanoma

capture.output(resum_age, file="resum_age.doc") #Exportem els resultats a un .doc

# D)
# Importem l'arxiu .csv que hem descarregat de les dades de mortalitat de Polònia, de la web https://guides.lib.berkeley.edu/publichealth/healthstatistics/rawdata
mortality_poland <- read.csv("stats_poland.csv", header=FALSE) # Seleccionem Header = FALSE perquè a l'arxiu no hi ha cap encapçalament
head(mortality_poland) # Per comprovar que la importació ha anat bé, visualitzem el header
##     V1   V2 V3       V4       V5           V6        V7           V8        V9
## 1 1958 1958  0 731811.9 54802.21 0.0748856549 0.3000777 0.0711560706 0.9288439
## 2 1958 1958  1 719944.5  3519.20 0.0048881543 0.5000000 0.0048762364 0.9951238
## 3 1958 1958  2 723834.5  1366.42 0.0018877520 0.5000000 0.0018859719 0.9981140
## 4 1958 1958  3 718686.4   955.69 0.0013297733 0.5000000 0.0013288898 0.9986711
## 5 1958 1958  4 706748.1   682.21 0.0009652803 0.5000000 0.0009648146 0.9990352
## 6 1958 1958  5 701953.2   581.04 0.0008277475 0.5000000 0.0008274050 0.9991726
##         V10        V11      V12     V13      V14
## 1 100000.00 7115.60706 95019.63 6591932 65.91932
## 2  92884.39  452.92626 92657.93 6496913 69.94622
## 3  92431.47  174.32315 92344.31 6404255 69.28652
## 4  92257.14  122.59957 92195.84 6311910 68.41649
## 5  92134.54   88.89276 92090.10 6219715 67.50687
## 6  92045.65   76.15904 92007.57 6127624 66.57158

Exercici 5

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:
a) Quina és l’edat màxima de les mares del conjunt de dades?
b) Quina és l’edat mínima de les mares del conjunt de dades?
c) Quin és el rang d’edat de les mares?
d) Fumava la mare que el seu nounat era el de menys pes?
e) Quant va pesar el nounat la mare del qual tenia l’edat màxima? f) Feu una llista els pesos dels nounats, les mares dels quals visitaran menys de dues vegades el metge durant el primer trimestre.

library(MASS)
data("birthwt") # Obtenim el dataset

# A) i B)
summary(birthwt$age) # Amb aquest estadístic obtenim diferents estadístics entre els quals hi ha el valor mínim i el valor màxim,
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   14.00   19.00   23.00   23.24   26.00   45.00
# Si volguessim específicament el valors, els podem obtenir per:
max(birthwt$age)
## [1] 45
min(birthwt$age) 
## [1] 14
# C) 
# Sabem que el rang d'edat de les mares és de 14 (mínim) a 45 (màxim)
# Si volem saber quants valors hi ha entre el mínim i el màxim
max(birthwt$age)-min(birthwt$age)
## [1] 31
# D)
birthwt$smoke[birthwt$bwt==min(birthwt$bwt)] # Esperem un resultat d'1 (Fumadora) o 0 (No fumadora)
## [1] 1
# E)
pes_major <- birthwt$bwt[birthwt$age==max(birthwt$age)]
cat("El nadó de la mare més vella pesava", pes_major, "grams.") # Per presentar els resultats de forma més atractiva, es pot introduir entre text
## El nadó de la mare més vella pesava 4990 grams.
# F)
birthwt$bwt[birthwt$ftv<2]
##   [1] 2523 2557 2600 2622 2637 2637 2663 2665 2722 2733 2751 2769 2769 2778 2807
##  [16] 2821 2836 2863 2877 2906 2920 2920 2920 2948 2948 2977 2977 2922 3033 3062
##  [31] 3062 3062 3062 3090 3090 3100 3104 3132 3175 3175 3203 3203 3203 3225 3225
##  [46] 3232 3234 3260 3274 3317 3317 3331 3374 3374 3402 3416 3444 3459 3460 3473
##  [61] 3544 3487 3544 3572 3572 3586 3600 3614 3614 3629 3637 3643 3651 3651 3651
##  [76] 3651 3699 3728 3756 3770 3770 3770 3790 3799 3827 3884 3912 3940 3941 3941
##  [91] 3969 3997 3997 4054 4054 4111 4174 4238 4593 4990  709 1135 1330 1474 1588
## [106] 1588 1701 1729 1790 1818 1885 1893 1899 1928 1936 1970 2055 2055 2084 2084
## [121] 2100 2125 2187 2187 2211 2225 2240 2240 2282 2296 2296 2325 2353 2353 2367
## [136] 2381 2381 2381 2410 2410 2410 2424 2442 2466 2466 2495 2495

Exercici 6

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ó.

library(MASS)
data("anorexia")
matriu_pesos <- matrix(anorexia$Prewt,anorexia$Postwt,ncol=2) # Creem la matriu, és important afegir ncol=2, perque del contrari només es crea una columna, amb les dades de Prewt
## Warning in matrix(anorexia$Prewt, anorexia$Postwt, ncol = 2): data length [72]
## is not a sub-multiple or multiple of the number of rows [80]
# Assignem noms a les columnes
colnames(matriu_pesos) <- c("Prewt", "Postwt")
matriu_pesos
##       Prewt Postwt
##  [1,]  80.7   80.6
##  [2,]  89.4   78.4
##  [3,]  91.8   77.6
##  [4,]  74.0   88.7
##  [5,]  78.1   81.3
##  [6,]  88.3   78.1
##  [7,]  87.3   70.5
##  [8,]  75.1   77.3
##  [9,]  80.6   85.2
## [10,]  78.4   86.0
## [11,]  77.6   84.1
## [12,]  88.7   79.7
## [13,]  81.3   85.5
## [14,]  78.1   84.4
## [15,]  70.5   79.6
## [16,]  77.3   77.5
## [17,]  85.2   72.3
## [18,]  86.0   89.0
## [19,]  84.1   80.5
## [20,]  79.7   84.9
## [21,]  85.5   81.5
## [22,]  84.4   82.6
## [23,]  79.6   79.9
## [24,]  77.5   88.7
## [25,]  72.3   94.9
## [26,]  89.0   76.3
## [27,]  80.5   81.0
## [28,]  84.9   80.5
## [29,]  81.5   85.0
## [30,]  82.6   89.2
## [31,]  79.9   81.3
## [32,]  88.7   76.5
## [33,]  94.9   70.0
## [34,]  76.3   80.4
## [35,]  81.0   83.3
## [36,]  80.5   83.0
## [37,]  85.0   87.7
## [38,]  89.2   84.2
## [39,]  81.3   86.4
## [40,]  76.5   76.5
## [41,]  70.0   80.2
## [42,]  80.4   87.8
## [43,]  83.3   83.3
## [44,]  83.0   79.7
## [45,]  87.7   84.5
## [46,]  84.2   80.8
## [47,]  86.4   87.4
## [48,]  76.5   83.8
## [49,]  80.2   83.3
## [50,]  87.8   86.0
## [51,]  83.3   82.5
## [52,]  79.7   86.7
## [53,]  84.5   79.6
## [54,]  80.8   76.9
## [55,]  87.4   94.2
## [56,]  83.8   73.4
## [57,]  83.3   80.5
## [58,]  86.0   81.6
## [59,]  82.5   82.1
## [60,]  86.7   77.6
## [61,]  79.6   83.5
## [62,]  76.9   89.9
## [63,]  94.2   86.0
## [64,]  73.4   87.3
## [65,]  80.5   80.7
## [66,]  81.6   89.4
## [67,]  82.1   91.8
## [68,]  77.6   74.0
## [69,]  83.5   78.1
## [70,]  89.9   88.3
## [71,]  86.0   87.3
## [72,]  87.3   75.1
## [73,]  80.7   80.6
## [74,]  89.4   78.4
## [75,]  91.8   77.6
## [76,]  74.0   88.7
## [77,]  78.1   81.3
## [78,]  88.3   78.1
## [79,]  87.3   70.5
## [80,]  75.1   77.3

Exercici 7

  1. Seleccioneu els registres amb edat > 22.
  2. Seleccioneu l’element 3 de la columna 4 del conjunt de dades (comptant l’identificador).
  3. Useu l’ordre subset() per seleccionar totes les files que tenen una edat més petita que 27 anys i sense incloure la columna Alt.
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) 

# A)
Tract_Pulmo[Tract_Pulmo$Edat>22,] # Seleccionem els registres dels pacients majors de 22 anys
##    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Í
# B)
Tract_Pulmo[3,4] # En els elements dins el claudàtor, el primer nombre correspon a les files, i el segon a les columnes
## [1] 79.3
# C)
subset(Tract_Pulmo, Edat <27, select =-c(Alt))
##    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

Exercici 8

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). a) Incorporeu el conjunt de dades ChickWeight del paquet datasets al vostre entorn de treball. b) Genereu un gràfic de dispersió de la variable weight. c) Creeu un diagrama de caixa amb la variable Time.

# A)
data("ChickWeight")
head(ChickWeight)
##   weight Time Chick Diet
## 1     42    0     1    1
## 2     51    2     1    1
## 3     59    4     1    1
## 4     64    6     1    1
## 5     76    8     1    1
## 6     93   10     1    1
# B)
plot(ChickWeight$weight, main= "Gràfic de dispersió pel pes dels pollets", xlab = "Número Identificador", ylab = "Pes del pollet (grams)", col="green")

# C) 
boxplot(ChickWeight$Time, main= "Boxplot del temps", ylab = "Dies des del naixement", col="yellow")

Exercici 9

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.

library(MASS)
data("anorexia")
anorexia_treat_df <- data.frame( # Creem el dataframe format pel tractament + la diferència
  Treat = anorexia$Treat, 
  Diferència = anorexia$Postwt-anorexia$Prewt) # Introduim la formula directament

head(anorexia_treat_df) # Visualitzem si el dataframe s'ha creat correctament
##   Treat Diferència
## 1  Cont       -0.5
## 2  Cont       -9.3
## 3  Cont       -5.4
## 4  Cont       12.3
## 5  Cont       -2.0
## 6  Cont      -10.2
# Seleccionem només els que han guanyat pes després del tractament
guany_pes <- anorexia_treat_df[anorexia_treat_df$Diferencia > 0, ]

# Creem el nou conjunt que conté només les dades dels que han sigut tractats i guanyat pes
anorexia_treat_C_df <- subset(anorexia_treat_df, Treat == "Cont" & Diferència >0)
anorexia_treat_C_df
##    Treat Diferència
## 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

Exercici 10

Solució: https://rpubs.com/carlescb1

CAS PRÀCTIC

  1. Creeu un conjunt de dades inventat amb R. Ha de contenir trenta observacions (quinze per a homes i quinze per a dones) per a sis variables.
  2. Busqueu informació del vostre conjunt de dades i de les vostres variables.
  3. Creeu una nova variable a partir d’alguna de les que tinguem. Per exemple, podeu
    calcular l’IMC (IMC = pes (kg)/ [alçada (m)]2 i incloeu la nova variable en el conjunt de dades.
  4. Creeu dos data frames diferenciats per a homes i dones amb dos noms diferents:
    Df_Homes i Df_Dones.
  5. Combineu de nou els dos fitxers anteriors i creeu el primer de nou amb l’ordre rbind().
# A)
# Creem el dataset inventat, i primer li definim una llavor aleatòria
set.seed(435)

# Identificador
id <- paste0("Pacient_",1:30)

# Edat
edat <- sample(18:90, 30, replace=TRUE)

# Gènere (1 = D, 2 = H)
genere <- rep(c(1,2), each=15)

# Tractament (A, B, C)
tractament <- rep(c("A","B","C"))

# Pes
pes <- round(rnorm(30, mean = 60, sd = 8))
 
# Alçada
alt <- round(rnorm(30, mean = 175, sd = 4))

# Creem un dataframe
estudi <- data.frame(Id=id, Edat=edat, Gen=genere, Tract=tractament, Pes=pes, Alt=alt)
head(estudi)
##          Id Edat Gen Tract Pes Alt
## 1 Pacient_1   61   1     A  62 175
## 2 Pacient_2   77   1     B  58 168
## 3 Pacient_3   71   1     C  51 178
## 4 Pacient_4   82   1     A  65 173
## 5 Pacient_5   48   1     B  52 172
## 6 Pacient_6   50   1     C  53 173
# B) 
summary(estudi)
##       Id                 Edat            Gen         Tract          
##  Length:30          Min.   :19.00   Min.   :1.0   Length:30         
##  Class :character   1st Qu.:43.50   1st Qu.:1.0   Class :character  
##  Mode  :character   Median :71.50   Median :1.5   Mode  :character  
##                     Mean   :61.43   Mean   :1.5                     
##                     3rd Qu.:79.25   3rd Qu.:2.0                     
##                     Max.   :90.00   Max.   :2.0                     
##       Pes             Alt       
##  Min.   :49.00   Min.   :168.0  
##  1st Qu.:52.25   1st Qu.:172.0  
##  Median :58.50   Median :175.0  
##  Mean   :58.57   Mean   :174.8  
##  3rd Qu.:64.00   3rd Qu.:177.8  
##  Max.   :71.00   Max.   :181.0
# C)
# Afegim les dades al dataframe definint la fòrmula de l'IMC com a estudi$IMC
estudi$IMC <- round(estudi$Pes/(estudi$Alt/100)^2, 1) # Calculem l'IMC i l'arrodonim a un decimal per a que sigui més llegible
estudi
##            Id Edat Gen Tract Pes Alt  IMC
## 1   Pacient_1   61   1     A  62 175 20.2
## 2   Pacient_2   77   1     B  58 168 20.5
## 3   Pacient_3   71   1     C  51 178 16.1
## 4   Pacient_4   82   1     A  65 173 21.7
## 5   Pacient_5   48   1     B  52 172 17.6
## 6   Pacient_6   50   1     C  53 173 17.7
## 7   Pacient_7   89   1     A  59 178 18.6
## 8   Pacient_8   76   1     B  50 172 16.9
## 9   Pacient_9   53   1     C  69 177 22.0
## 10 Pacient_10   90   1     A  64 172 21.6
## 11 Pacient_11   23   1     B  71 176 22.9
## 12 Pacient_12   76   1     C  67 179 20.9
## 13 Pacient_13   87   1     A  55 174 18.2
## 14 Pacient_14   86   1     B  51 169 17.9
## 15 Pacient_15   75   1     C  49 177 15.6
## 16 Pacient_16   72   2     A  57 175 18.6
## 17 Pacient_17   69   2     B  65 178 20.5
## 18 Pacient_18   53   2     C  62 173 20.7
## 19 Pacient_19   74   2     A  63 180 19.4
## 20 Pacient_20   19   2     B  49 172 16.6
## 21 Pacient_21   90   2     C  66 178 20.8
## 22 Pacient_22   31   2     A  64 170 22.1
## 23 Pacient_23   75   2     B  64 178 20.2
## 24 Pacient_24   80   2     C  56 177 17.9
## 25 Pacient_25   19   2     A  59 174 19.5
## 26 Pacient_26   36   2     B  55 181 16.8
## 27 Pacient_27   83   2     C  54 175 17.6
## 28 Pacient_28   42   2     A  51 170 17.6
## 29 Pacient_29   29   2     B  51 177 16.3
## 30 Pacient_30   27   2     C  65 172 22.0
# D)
Df_Homes <- estudi[estudi$Gen==2,]

Df_Dones <- estudi[estudi$Gen==1,]
Df_Dones
##            Id Edat Gen Tract Pes Alt  IMC
## 1   Pacient_1   61   1     A  62 175 20.2
## 2   Pacient_2   77   1     B  58 168 20.5
## 3   Pacient_3   71   1     C  51 178 16.1
## 4   Pacient_4   82   1     A  65 173 21.7
## 5   Pacient_5   48   1     B  52 172 17.6
## 6   Pacient_6   50   1     C  53 173 17.7
## 7   Pacient_7   89   1     A  59 178 18.6
## 8   Pacient_8   76   1     B  50 172 16.9
## 9   Pacient_9   53   1     C  69 177 22.0
## 10 Pacient_10   90   1     A  64 172 21.6
## 11 Pacient_11   23   1     B  71 176 22.9
## 12 Pacient_12   76   1     C  67 179 20.9
## 13 Pacient_13   87   1     A  55 174 18.2
## 14 Pacient_14   86   1     B  51 169 17.9
## 15 Pacient_15   75   1     C  49 177 15.6
# E)
estudi_final <- rbind(Df_Homes, Df_Dones)
estudi_final
##            Id Edat Gen Tract Pes Alt  IMC
## 16 Pacient_16   72   2     A  57 175 18.6
## 17 Pacient_17   69   2     B  65 178 20.5
## 18 Pacient_18   53   2     C  62 173 20.7
## 19 Pacient_19   74   2     A  63 180 19.4
## 20 Pacient_20   19   2     B  49 172 16.6
## 21 Pacient_21   90   2     C  66 178 20.8
## 22 Pacient_22   31   2     A  64 170 22.1
## 23 Pacient_23   75   2     B  64 178 20.2
## 24 Pacient_24   80   2     C  56 177 17.9
## 25 Pacient_25   19   2     A  59 174 19.5
## 26 Pacient_26   36   2     B  55 181 16.8
## 27 Pacient_27   83   2     C  54 175 17.6
## 28 Pacient_28   42   2     A  51 170 17.6
## 29 Pacient_29   29   2     B  51 177 16.3
## 30 Pacient_30   27   2     C  65 172 22.0
## 1   Pacient_1   61   1     A  62 175 20.2
## 2   Pacient_2   77   1     B  58 168 20.5
## 3   Pacient_3   71   1     C  51 178 16.1
## 4   Pacient_4   82   1     A  65 173 21.7
## 5   Pacient_5   48   1     B  52 172 17.6
## 6   Pacient_6   50   1     C  53 173 17.7
## 7   Pacient_7   89   1     A  59 178 18.6
## 8   Pacient_8   76   1     B  50 172 16.9
## 9   Pacient_9   53   1     C  69 177 22.0
## 10 Pacient_10   90   1     A  64 172 21.6
## 11 Pacient_11   23   1     B  71 176 22.9
## 12 Pacient_12   76   1     C  67 179 20.9
## 13 Pacient_13   87   1     A  55 174 18.2
## 14 Pacient_14   86   1     B  51 169 17.9
## 15 Pacient_15   75   1     C  49 177 15.6