Hola a todos,
Me gustaria pedir vuestra ayuda a encontrar el error que no consigo
encontrar en este archivo. He revisado todo mil veces y probado y no doy
con ello.Adjunto el archivo con Google drive porque es muy grande.
?
monicap_50.csv
<https://docs.google.com/file/d/0B8o2KrPEgG7ATlBMc19lTVk1d3M/edit?usp=drive_web>
?
Este es el script, y lo que no entiendo que pasa es que tengo 592044 datos
despues de limpiar los NA quedan 586561 datos , y cuando utilizo el script
la suma de z2+z4+z5+z6 , que son los estados deberia de darme lo mismo que
Z1 que es el valor total de datos pero no se que error existe que me dan
mas datos que los que hay.He comparado con el archivo en excel y los datos
de na estan correctos.
library(chron)
library(xlsx)
filename<-"monicap_50.csv"
DBxy<-read.csv(filename, sep=";",header=TRUE,dec=",")
DBx<-na.omit(DBxy)
names(DBx)<-c("Boat","DateTime","TimeDiff",
"Latitude", "Longitude",
"Course", "Speed", "distNm",
"calcSpeed", "calcCourse", "distHb",
"Harbour", "idTrip","vmsAngle",
"calcAngle", "vmsLeg", "calcLeg",
"Trip_vmsLeg", "Trip_calcLeg", "lengthTrip",
"lengthTrip_vmsLeg",
"lengthTrip_calcLeg","Time", "Date")
#Formatting date and time variables
DBx$Date<-strptime(DBx$Date, "%d-%m-%Y")
DBx$Year<-as.POSIXlt(DBx$Date)$year+1900
if(filename!="monicap_50.csv") {DBx$Time<-paste(DBx$Time,
":00",
sep="")} #NOT necessary for Monicap and Univerest_50
DBx$Time<-times(DBx$Time) #Works for Monicap AND UNIVEREST_50 ONLY
DBx$Boat<-gsub("^\\s+|\\s+$", "", DBx$Boat)
#Read file with boat codes and gears
codeBoats<- read.csv("CODES_2002-2010New.csv",
sep=",",header=TRUE) #Laptop
codeBoats$CODIGO<-gsub("^\\s+|\\s+$", "",
codeBoats$CODIGO)
#Assigning a Fishing license based on Boat and Year
DBx$gear<-codeBoats$Lic[match(paste(DBx$Boat,DBx$Year),
paste(codeBoats$CODIGO,codeBoats$Year))]
z0<-length(DBx$gear)
z1<-length(DBx$gear)
z1
#defining speed and distance limits
speedFishing<-2.0
speedHarb<-1.0
distHbRule<-3.0
speedSteam<-2.0
minTime<-times(c("05:59:59")) #usual beginning of
fishing
operations
maxTime<- times(c("20:59:59")) #usual finishing of
fishing
operations
#Selecting Harbour
DBharbour<- na.omit(DBx[DBx$distHb<=distHbRule &
DBx$calcSpeed<=speedHarb,])
DBharbour$State<-"Harbour" #MONICAP= 10618; UNIVER1= ;
UNIVER2= ;
UNIVEREST= 1028
z2<-length(DBharbour$State)
#Selecting Steaming
DBsteaming<- na.omit(DBx[(DBx$calcSpeed>speedFishing) |
(DBx$distHb<=distHbRule & DBx$calcSpeed>speedHarb),])
DBsteaming$State<- "Steaming" #MONICAP= 88398; UNIVER1= ;
UNIVER2; UNIVEREST= 53748
DBsteaming$Harbour<-""
z4<-length(DBsteaming$State)
#Selecting Fishing
DBfishing<- na.omit(DBx[(DBx$calcSpeed<=speedFishing &
DBx$distHb>distHbRule & DBx$Time>minTime &
DBx$Time<=maxTime),])
DBfishing$State<-"Fishing"
DBfishing$Harbour<-""
z5<-length(DBfishing$State)
#Selecting nigth
DBnight<- na.omit(DBx[(DBx$calcSpeed<=speedFishing &
DBx$distHb>distHbRule &(DBx$Time<=minTime | DBx$Time>maxTime)),])
DBnight$State<-"Night" #MONICAP=10434; UNIVER1= 16677;
UNIVER225789
DBnight$Harbour<-""
z6<-length(DBnight$State)
Si alguien ve el error y puede echarme una mano agradeceria, si no pues
seguire peleandome con el archivo!
Muchas gracias, un saludo
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20140709/12392d7c/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: CODES_2002-2010New.csv
Type: text/csv
Size: 113916 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20140709/12392d7c/attachment-0001.bin>
Hola, ¿qué tal? Las condiciones que definen los cuatro conjuntos de datos, ¿son mutuamente exclusivas? Yo trataría de comprobar si hay líneas que cumplen más de una de ellas. Podrías crear un vector con etiquetas al principio que definiese qué filas van a cada conjunto de datos. Eso garantizaría que cada fila llega a uno y solo uno de ellos. Tendrías, además, un diseño más limpio y fácil de interpretar y mantener. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com 2014-07-09 13:56 GMT+02:00 Marta valdes lopez <martavaldes85@gmail.com>:> Hola a todos, > > Me gustaria pedir vuestra ayuda a encontrar el error que no consigo > encontrar en este archivo. He revisado todo mil veces y probado y no doy > con ello.Adjunto el archivo con Google drive porque es muy grande. > > > monicap_50.csv > <https://docs.google.com/file/d/0B8o2KrPEgG7ATlBMc19lTVk1d3M/edit?usp=drive_web> > > Este es el script, y lo que no entiendo que pasa es que tengo 592044 datos > despues de limpiar los NA quedan 586561 datos , y cuando utilizo el script > la suma de z2+z4+z5+z6 , que son los estados deberia de darme lo mismo que > Z1 que es el valor total de datos pero no se que error existe que me dan > mas datos que los que hay.He comparado con el archivo en excel y los datos > de na estan correctos. > > library(chron) > library(xlsx) > filename<-"monicap_50.csv" > DBxy<-read.csv(filename, sep=";",header=TRUE,dec=",") > DBx<-na.omit(DBxy) > names(DBx)<-c("Boat","DateTime","TimeDiff", "Latitude", "Longitude", > "Course", "Speed", "distNm", "calcSpeed", "calcCourse", "distHb", > "Harbour", "idTrip","vmsAngle", "calcAngle", "vmsLeg", "calcLeg", > "Trip_vmsLeg", "Trip_calcLeg", "lengthTrip", "lengthTrip_vmsLeg", > "lengthTrip_calcLeg","Time", "Date") > #Formatting date and time variables > DBx$Date<-strptime(DBx$Date, "%d-%m-%Y") > DBx$Year<-as.POSIXlt(DBx$Date)$year+1900 > if(filename!="monicap_50.csv") {DBx$Time<-paste(DBx$Time, ":00", > sep="")} #NOT necessary for Monicap and Univerest_50 > DBx$Time<-times(DBx$Time) #Works for Monicap AND UNIVEREST_50 ONLY > DBx$Boat<-gsub("^\\s+|\\s+$", "", DBx$Boat) > #Read file with boat codes and gears > codeBoats<- read.csv("CODES_2002-2010New.csv", > sep=",",header=TRUE) #Laptop > codeBoats$CODIGO<-gsub("^\\s+|\\s+$", "", codeBoats$CODIGO) > #Assigning a Fishing license based on Boat and Year > DBx$gear<-codeBoats$Lic[match(paste(DBx$Boat,DBx$Year), > paste(codeBoats$CODIGO,codeBoats$Year))] > z0<-length(DBx$gear) > z1<-length(DBx$gear) > z1 > #defining speed and distance limits > speedFishing<-2.0 > speedHarb<-1.0 > distHbRule<-3.0 > speedSteam<-2.0 > minTime<-times(c("05:59:59")) #usual beginning of fishing > operations > maxTime<- times(c("20:59:59")) #usual finishing of fishing > operations > #Selecting Harbour > DBharbour<- na.omit(DBx[DBx$distHb<=distHbRule & > DBx$calcSpeed<=speedHarb,]) > DBharbour$State<-"Harbour" #MONICAP= 10618; UNIVER1= ; UNIVER2> ; UNIVEREST= 1028 > z2<-length(DBharbour$State) > #Selecting Steaming > DBsteaming<- na.omit(DBx[(DBx$calcSpeed>speedFishing) | > (DBx$distHb<=distHbRule & DBx$calcSpeed>speedHarb),]) > DBsteaming$State<- "Steaming" #MONICAP= 88398; UNIVER1= ; UNIVER2> ; UNIVEREST= 53748 > DBsteaming$Harbour<-"" > z4<-length(DBsteaming$State) > #Selecting Fishing > DBfishing<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & > DBx$distHb>distHbRule & DBx$Time>minTime & DBx$Time<=maxTime),]) > DBfishing$State<-"Fishing" > DBfishing$Harbour<-"" > z5<-length(DBfishing$State) > #Selecting nigth > DBnight<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & > DBx$distHb>distHbRule &(DBx$Time<=minTime | DBx$Time>maxTime)),]) > DBnight$State<-"Night" #MONICAP=10434; UNIVER1= 16677; UNIVER2> 25789 > DBnight$Harbour<-"" > z6<-length(DBnight$State) > > Si alguien ve el error y puede echarme una mano agradeceria, si no pues > seguire peleandome con el archivo! > > Muchas gracias, un saludo > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Hola, No, no te dan más datos de los que partes...> z1[1] 586561> z2+z4+z5+z6[1] 509370> z1 > (z2+z4+z5+z6)[1] TRUEPero tampoco son iguales como esperabas. Saludos, Carlos Ortega www.qualityexcellence.es 2014-07-09 13:56 GMT+02:00 Marta valdes lopez <martavaldes85@gmail.com>:> Hola a todos, > > Me gustaria pedir vuestra ayuda a encontrar el error que no consigo > encontrar en este archivo. He revisado todo mil veces y probado y no doy > con ello.Adjunto el archivo con Google drive porque es muy grande. > > > monicap_50.csv > <https://docs.google.com/file/d/0B8o2KrPEgG7ATlBMc19lTVk1d3M/edit?usp=drive_web> > > Este es el script, y lo que no entiendo que pasa es que tengo 592044 datos > despues de limpiar los NA quedan 586561 datos , y cuando utilizo el script > la suma de z2+z4+z5+z6 , que son los estados deberia de darme lo mismo que > Z1 que es el valor total de datos pero no se que error existe que me dan > mas datos que los que hay.He comparado con el archivo en excel y los datos > de na estan correctos. > > library(chron) > library(xlsx) > filename<-"monicap_50.csv" > DBxy<-read.csv(filename, sep=";",header=TRUE,dec=",") > DBx<-na.omit(DBxy) > names(DBx)<-c("Boat","DateTime","TimeDiff", "Latitude", "Longitude", > "Course", "Speed", "distNm", "calcSpeed", "calcCourse", "distHb", > "Harbour", "idTrip","vmsAngle", "calcAngle", "vmsLeg", "calcLeg", > "Trip_vmsLeg", "Trip_calcLeg", "lengthTrip", "lengthTrip_vmsLeg", > "lengthTrip_calcLeg","Time", "Date") > #Formatting date and time variables > DBx$Date<-strptime(DBx$Date, "%d-%m-%Y") > DBx$Year<-as.POSIXlt(DBx$Date)$year+1900 > if(filename!="monicap_50.csv") {DBx$Time<-paste(DBx$Time, ":00", > sep="")} #NOT necessary for Monicap and Univerest_50 > DBx$Time<-times(DBx$Time) #Works for Monicap AND UNIVEREST_50 ONLY > DBx$Boat<-gsub("^\\s+|\\s+$", "", DBx$Boat) > #Read file with boat codes and gears > codeBoats<- read.csv("CODES_2002-2010New.csv", > sep=",",header=TRUE) #Laptop > codeBoats$CODIGO<-gsub("^\\s+|\\s+$", "", codeBoats$CODIGO) > #Assigning a Fishing license based on Boat and Year > DBx$gear<-codeBoats$Lic[match(paste(DBx$Boat,DBx$Year), > paste(codeBoats$CODIGO,codeBoats$Year))] > z0<-length(DBx$gear) > z1<-length(DBx$gear) > z1 > #defining speed and distance limits > speedFishing<-2.0 > speedHarb<-1.0 > distHbRule<-3.0 > speedSteam<-2.0 > minTime<-times(c("05:59:59")) #usual beginning of fishing > operations > maxTime<- times(c("20:59:59")) #usual finishing of fishing > operations > #Selecting Harbour > DBharbour<- na.omit(DBx[DBx$distHb<=distHbRule & > DBx$calcSpeed<=speedHarb,]) > DBharbour$State<-"Harbour" #MONICAP= 10618; UNIVER1= ; UNIVER2> ; UNIVEREST= 1028 > z2<-length(DBharbour$State) > #Selecting Steaming > DBsteaming<- na.omit(DBx[(DBx$calcSpeed>speedFishing) | > (DBx$distHb<=distHbRule & DBx$calcSpeed>speedHarb),]) > DBsteaming$State<- "Steaming" #MONICAP= 88398; UNIVER1= ; UNIVER2> ; UNIVEREST= 53748 > DBsteaming$Harbour<-"" > z4<-length(DBsteaming$State) > #Selecting Fishing > DBfishing<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & > DBx$distHb>distHbRule & DBx$Time>minTime & DBx$Time<=maxTime),]) > DBfishing$State<-"Fishing" > DBfishing$Harbour<-"" > z5<-length(DBfishing$State) > #Selecting nigth > DBnight<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & > DBx$distHb>distHbRule &(DBx$Time<=minTime | DBx$Time>maxTime)),]) > DBnight$State<-"Night" #MONICAP=10434; UNIVER1= 16677; UNIVER2> 25789 > DBnight$Harbour<-"" > z6<-length(DBnight$State) > > Si alguien ve el error y puede echarme una mano agradeceria, si no pues > seguire peleandome con el archivo! > > Muchas gracias, un saludo > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, La diferencia la tienes en que en la columna "gear" del data.frame grande (DBx$gear) hay muchos "NAs" que no aparecen en los otros data.frames que generas luego: DBharbour, DBsteaming, DBfishing, DBnight. Una forma de verlo programáticamente es esta:> DB.new <- rbind.data.frame(DBharbour, DBsteaming, DBfishing, DBnight)> DBnew <- DB.new[,1:26]> > dim(DBx)[1] 586561 26> dim(DBnew)[1] 509370 26> > a1 <- as.data.frame(summary(DBx$gear))> a2 <- as.data.frame(summary(DBnew$gear))> a1 summary(DBx$gear)BLL 62346 BLL / HL 0 BLL / PLL 26789 NotLic 27215 OUT 25270 PLL 163204 PLL / PoleLine 0 PoleLine 204546 PoleLine / PLL / BLL / Traps 0 Troll 0 NA's 77191> a2 summary(DBnew$gear) BLL 62346 BLL / HL 0 BLL / PLL 26789 NotLic 27215 OUT 25270 PLL 163204 PLL / PoleLine 0 PoleLine 204546 PoleLine / PLL / BLL / Traps 0 Troll 0> > > > # http://stackoverflow.com/questions/3171426/compare-two-data-frames-to-find-the-rows-in-data-frame-1-that-are-not-present-in> library(sqldf)> DBx.Noen.DBnew <- sqldf("select * from a1 EXCEPT select * from a2")> DBx.Noen.DBnew summary_DBx_gear_ 1 77191 Saludos, Carlos Ortega www.qualityexcellence.es El 9 de julio de 2014, 14:55, Carlos Ortega <cof@qualityexcellence.es> escribió:> Hola, > > No, no te dan más datos de los que partes... > > > z1[1] 586561> z2+z4+z5+z6[1] 509370> z1 > (z2+z4+z5+z6)[1] TRUE > > > > Pero tampoco son iguales como esperabas. > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > 2014-07-09 13:56 GMT+02:00 Marta valdes lopez <martavaldes85@gmail.com>: > >> Hola a todos, >> >> Me gustaria pedir vuestra ayuda a encontrar el error que no consigo >> encontrar en este archivo. He revisado todo mil veces y probado y no doy >> con ello.Adjunto el archivo con Google drive porque es muy grande. >> >> >> monicap_50.csv >> <https://docs.google.com/file/d/0B8o2KrPEgG7ATlBMc19lTVk1d3M/edit?usp=drive_web> >> >> Este es el script, y lo que no entiendo que pasa es que tengo 592044 >> datos despues de limpiar los NA quedan 586561 datos , y cuando utilizo el >> script la suma de z2+z4+z5+z6 , que son los estados deberia de darme lo >> mismo que Z1 que es el valor total de datos pero no se que error existe que >> me dan mas datos que los que hay.He comparado con el archivo en excel y los >> datos de na estan correctos. >> >> library(chron) >> library(xlsx) >> filename<-"monicap_50.csv" >> DBxy<-read.csv(filename, sep=";",header=TRUE,dec=",") >> DBx<-na.omit(DBxy) >> names(DBx)<-c("Boat","DateTime","TimeDiff", "Latitude", "Longitude", >> "Course", "Speed", "distNm", "calcSpeed", "calcCourse", "distHb", >> "Harbour", "idTrip","vmsAngle", "calcAngle", "vmsLeg", "calcLeg", >> "Trip_vmsLeg", "Trip_calcLeg", "lengthTrip", "lengthTrip_vmsLeg", >> "lengthTrip_calcLeg","Time", "Date") >> #Formatting date and time variables >> DBx$Date<-strptime(DBx$Date, "%d-%m-%Y") >> DBx$Year<-as.POSIXlt(DBx$Date)$year+1900 >> if(filename!="monicap_50.csv") {DBx$Time<-paste(DBx$Time, ":00", >> sep="")} #NOT necessary for Monicap and Univerest_50 >> DBx$Time<-times(DBx$Time) #Works for Monicap AND UNIVEREST_50 >> ONLY >> DBx$Boat<-gsub("^\\s+|\\s+$", "", DBx$Boat) >> #Read file with boat codes and gears >> codeBoats<- read.csv("CODES_2002-2010New.csv", >> sep=",",header=TRUE) #Laptop >> codeBoats$CODIGO<-gsub("^\\s+|\\s+$", "", codeBoats$CODIGO) >> #Assigning a Fishing license based on Boat and Year >> DBx$gear<-codeBoats$Lic[match(paste(DBx$Boat,DBx$Year), >> paste(codeBoats$CODIGO,codeBoats$Year))] >> z0<-length(DBx$gear) >> z1<-length(DBx$gear) >> z1 >> #defining speed and distance limits >> speedFishing<-2.0 >> speedHarb<-1.0 >> distHbRule<-3.0 >> speedSteam<-2.0 >> minTime<-times(c("05:59:59")) #usual beginning of fishing >> operations >> maxTime<- times(c("20:59:59")) #usual finishing of fishing >> operations >> #Selecting Harbour >> DBharbour<- na.omit(DBx[DBx$distHb<=distHbRule & >> DBx$calcSpeed<=speedHarb,]) >> DBharbour$State<-"Harbour" #MONICAP= 10618; UNIVER1= ; UNIVER2>> ; UNIVEREST= 1028 >> z2<-length(DBharbour$State) >> #Selecting Steaming >> DBsteaming<- na.omit(DBx[(DBx$calcSpeed>speedFishing) | >> (DBx$distHb<=distHbRule & DBx$calcSpeed>speedHarb),]) >> DBsteaming$State<- "Steaming" #MONICAP= 88398; UNIVER1= ; >> UNIVER2= ; UNIVEREST= 53748 >> DBsteaming$Harbour<-"" >> z4<-length(DBsteaming$State) >> #Selecting Fishing >> DBfishing<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & >> DBx$distHb>distHbRule & DBx$Time>minTime & DBx$Time<=maxTime),]) >> DBfishing$State<-"Fishing" >> DBfishing$Harbour<-"" >> z5<-length(DBfishing$State) >> #Selecting nigth >> DBnight<- na.omit(DBx[(DBx$calcSpeed<=speedFishing & >> DBx$distHb>distHbRule &(DBx$Time<=minTime | DBx$Time>maxTime)),]) >> DBnight$State<-"Night" #MONICAP=10434; UNIVER1= 16677; UNIVER2>> 25789 >> DBnight$Harbour<-"" >> z6<-length(DBnight$State) >> >> Si alguien ve el error y puede echarme una mano agradeceria, si no pues >> seguire peleandome con el archivo! >> >> Muchas gracias, un saludo >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]