Marcos Matabuena
15/10/2015
En este documento html se va resolver el ejercicio propuesto por el profesor Javier Roca Pardiñas sobre el manejo de las estrúcturas básicas de R.
En un estudio se ha preguntado a 10 personas sobre su intención de voto en relación a unas elecciones donde se presentan 3 partidos político (P1,P2 y P3) obteniéndose los siguientes datos
id<-c(3,4,5,7,2,8,9,6,10,1)
voto1<-c("P1","P1","P3","P2","P3","P2","P3","P3","P2","P3")
voto1<-as.factor(voto1)
sexo<-c("mujer","hombre","mujer","hombre","hombre","hombre","hombre","hombre","mujer","hombre")
sexo<-as.factor(sexo)
edad<-c(49,50,64,NA,59,64,62,51,20,59)
R1<-data.frame(id,voto1,sexo,edad)
R1
## id voto1 sexo edad
## 1 3 P1 mujer 49
## 2 4 P1 hombre 50
## 3 5 P3 mujer 64
## 4 7 P2 hombre NA
## 5 2 P3 hombre 59
## 6 8 P2 hombre 64
## 7 9 P3 hombre 62
## 8 6 P3 hombre 51
## 9 10 P2 mujer 20
## 10 1 P3 hombre 59
#Ordenamos los datos seg?n id, de menor a mayor
ii<-order(id)
R1<-R1[ii,]
#Ordenamos los datos por sexo
iii<-order(R1$sexo)
R1<-R1[iii,]
#Ordenamos los datos por edad, de menor a mayor
i4<-order(R1$edad)
R1<-R1[i4,]
#Ordenamos los datos seg?n id, de menor a mayor
ii<-order(id)
R1<-R1[ii,]
R1
## id voto1 sexo edad
## 10 1 P3 hombre 59
## 5 2 P3 hombre 59
## 1 3 P1 mujer 49
## 2 4 P1 hombre 50
## 3 5 P3 mujer 64
## 8 6 P3 hombre 51
## 4 7 P2 hombre NA
## 6 8 P2 hombre 64
## 7 9 P3 hombre 62
## 9 10 P2 mujer 20
#Ordenamos los datos por sexo
iii<-order(R1$sexo)
R1<-R1[iii,]
R1
## id voto1 sexo edad
## 10 1 P3 hombre 59
## 5 2 P3 hombre 59
## 2 4 P1 hombre 50
## 8 6 P3 hombre 51
## 4 7 P2 hombre NA
## 6 8 P2 hombre 64
## 7 9 P3 hombre 62
## 1 3 P1 mujer 49
## 3 5 P3 mujer 64
## 9 10 P2 mujer 20
#Ordenamos los datos por edad, de menor a mayor
i4<-order(R1$edad)
R1<-R1[i4,]
R1
## id voto1 sexo edad
## 9 10 P2 mujer 20
## 1 3 P1 mujer 49
## 2 4 P1 hombre 50
## 8 6 P3 hombre 51
## 10 1 P3 hombre 59
## 5 2 P3 hombre 59
## 7 9 P3 hombre 62
## 6 8 P2 hombre 64
## 3 5 P3 mujer 64
## 4 7 P2 hombre NA
R1<-R1[,c(1,4,3,2)]
R1
## id edad sexo voto1
## 9 10 20 mujer P2
## 1 3 49 mujer P1
## 2 4 50 hombre P1
## 8 6 51 hombre P3
## 10 1 59 hombre P3
## 5 2 59 hombre P3
## 7 9 62 hombre P3
## 6 8 64 hombre P2
## 3 5 64 mujer P3
## 4 7 NA hombre P2
write.csv2(R1,file="R1.csv")
tabla<-table(sexo,edad)
tabla1<-table(voto1,sexo)
tabla
## edad
## sexo 20 49 50 51 59 62 64
## hombre 0 0 1 1 2 1 1
## mujer 1 1 0 0 0 0 1
tabla1
## sexo
## voto1 hombre mujer
## P1 1 1
## P2 2 1
## P3 4 1
i<-sexo=="mujer"
edad1<-edad[i]
voto11<-voto1[i]
tabla<-tapply(edad1,voto11,mean,na.rm=T)
edad2<-edad[!i]
voto12<-voto1[!i]
tabla1<-tapply(edad2,voto12,mean,na.rm=T)
edadmedia<-data.frame(tabla,tabla1)
names(edadmedia)[1]<-paste("mujer")
names(edadmedia)[2]<-paste("hombre")
edadmedia<-t(edadmedia)
edadmedia
## P1 P2 P3
## mujer 49 20 64.00
## hombre 50 64 57.75
A<-split(R1,sexo)
A
## $hombre
## id edad sexo voto1
## 1 3 49 mujer P1
## 8 6 51 hombre P3
## 10 1 59 hombre P3
## 5 2 59 hombre P3
## 7 9 62 hombre P3
## 6 8 64 hombre P2
## 4 7 NA hombre P2
##
## $mujer
## id edad sexo voto1
## 9 10 20 mujer P2
## 2 4 50 hombre P1
## 3 5 64 mujer P3
idn<-c(8,5,9,4,10,2,7,3,1,6)
voto2<-c("P3","P2","P1","P3","P2","P3","P1","P1","P2","P3")
voto2<-as.factor(voto2)
i5<-order(idn)
voto2<-voto2[i5]
id<-c(3,4,5,7,2,8,9,6,10,1)
voto1<-c("P1","P1","P3","P2","P3","P2","P3","P3","P2","P3")
voto1<-as.factor(voto1)
sexo<-c("mujer","hombre","mujer","hombre","hombre","hombre","hombre","hombre","mujer","hombre")
sexo<-as.factor(sexo)
edad<-c(49,50,64,NA,59,64,62,51,20,59)
ii<-order(id)
id<-id[ii]
voto1<-voto1[ii]
sexo<-sexo[ii]
edad<-edad[ii]
R2<-data.frame(id,edad,sexo,voto1,voto2)
R2
## id edad sexo voto1 voto2
## 1 1 59 hombre P3 P2
## 2 2 59 hombre P3 P3
## 3 3 49 mujer P1 P1
## 4 4 50 hombre P1 P3
## 5 5 64 mujer P3 P2
## 6 6 51 hombre P3 P3
## 7 7 NA hombre P2 P1
## 8 8 64 hombre P2 P3
## 9 9 62 hombre P3 P1
## 10 10 20 mujer P2 P2
# 10.1) Proporci?n de votantes que cambiaron de voto
n1<-length(which(voto1!=voto2))
n<-length(voto1)
proporcion<-n1/n
proporcion
## [1] 0.6
# 10.2)
cambianP1<-length(which(voto1!=voto2 & voto1=="P1"))
n<-length(voto1)
proporcionP1<-cambianP1/n
proporcionP1 #Proporci?n de votantes que votaban a P1 y se han cambiado
## [1] 0.1
cambianP2<-length(which(voto1!=voto2 & voto1=="P2"))
n<-length(voto1)
proporcionP2<-cambianP2/n
proporcionP2 #Proporci?n de votantes que votaban a P2 y se han cambiado
## [1] 0.2
cambianP3<-length(which(voto1!=voto2 & voto1=="P3"))
n<-length(voto1)
proporcionP3<-cambianP3/n
proporcionP3 #Proporci?n de votantes que votaban a P3 y se han cambiado
## [1] 0.3