R: diferència entre les revisions

Salta a la navegació Salta a la cerca
1.546 bytes afegits ,  2 juny 2005
Línia 1.093: Línia 1.093:
  length(baixes$FINAL)
  length(baixes$FINAL)
  summary(baixes$FINAL)
  summary(baixes$FINAL)
* Calculamos la duración de las bajas
baixes$DURADA=baixes$FINAL-baixes$INICI+1
length(subset(baixes,is.na(baixes$DURADA))$DURADA)
summary(baixes$DURADA)
baixes$DURADA
baixes$DURADA<-as.numeric(baixes$DURADA)
baixes$DURADA
* Dando vuelta, buscamos bajas duplicadas y las borramos
baixes$DUPLICAT<-rep(1,length(baixes$ID))
table(baixes$DUPLICAT)
for(i in 2:length(baixes$ID)){
  if(baixes$ID[i]==baixes$ID[i-1] & baixes$INICI[i]==baixes$INICI[i-1] & baixes$FINAL[i]==baixes$FINAL[i-1]){
  baixes$DUPLICAT[i]=baixes$DUPLICAT[i-1]+1}}
table(baixes$DUPLICAT)
baixes<-subset(baixes,baixes$DUPLICAT==1)
table(baixes$DUPLICAT)
names(baixes)
baixes$DUPLICAT<-NULL
baixes$INICI<-NULL
baixes$FINAL<-NULL
names(baixes)
* Y ahora lo mismo (buscar y borrar duplicados) sin dar tanta vuelta
duplicat<-duplicated(cbind(baixes$ID,baixes$INICI,baixes$FINAL))
table(duplicat)
baixes<-subset(baixes,duplicat==F)
table(duplicated(cbind(baixes$ID,baixes$INICI,baixes$FINAL)))
names(baixes)
duplicat<-NULL
baixes$INICI<-NULL
baixes$FINAL<-NULL
names(baixes)
* Ahora viene lo importante: reestructurar la base de datos para pasar a tener un solo registro por persona
length(baixes$ID)
table(duplicated(baixes$ID))
numero<-aggregate(baixes,by=list(baixes$ID),FUN=length)
length(numero[,1])
names(numero)
numero
numero$ID<-NULL
names(numero)<-c("ID","numero")
names(numero)
dies<-aggregate(baixes,by=list(baixes$ID),FUN=sum)
length(dies[,1])
names(dies)
dies
dies$ID<-NULL
names(dies)<-c("ID","dies")
names(dies)


== Sistema de ayuda ==
== Sistema de ayuda ==

Menú de navegació