Hi, I've a data frame with 3 columns: "mes", "fuente", "avg.sessions.duration". "avg.sessions.duration" is a column containing seconds. I need you help with: 1.- Help to put these values in "h:m:s" format. . ====================================================== I've found this german page: http://forum.r-statistik.de/viewtopic.php?f=25&t=5284 So I've tried: for (i in 1:nrow(session.duration.fuente)) { session.duration.fuente$avg.session.duration <- format(as.POSIXct('0001-01-01 00:00:00') + session.duration.fuente$avg.session.duration[i], "%H:%M:%S") } but got this error: Error in unclass(e1) + unclass(e2) : non-numeric argument to binary operator ====================================================== After that I've tried: strptime: session.duration.fuente$avg.session.duration <- strptime(session.duration.fuente$avg.session.duration, "%H:%M:%OS") But got NAs. ======================================================= Here is the data: session.duration.fuente <- structure(list(mes = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), .Label = c("oct", "nov"), class = c("ordered", "factor" )), fuente = c("adwords", "directo", "organico", "redes sociales", "referral", "adwords", "directo", "organico", "redes sociales", "referral"), avg.session.duration = c(970178, 1642455, 780485, 3170400, 179184, 352995, 833827, 260610, 2318928, 49836)), row.names c(NA, -10L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), vars = list( mes), drop = TRUE, .Names = c("mes", "fuente", "avg.session.duration" )) [[alternative HTML version deleted]]
Hi Omar, There is some sort of error in your structure definition, but the following works for me: session.duration.fuente <- data.frame(mes=c(rep("oct",5),rep("nov",5)), fuente=c("adwords", "directo", "organico", "redes sociales", "referral", "adwords", "directo", "organico", "redes sociales", "referral"), avg.session.duration = c(970178, 1642455, 780485, 3170400, 179184, 352995, 833827, 260610, 2318928, 49836)) base_dates<-strptime(rep("1970-01-01",10),"%Y-%m-%d") format(base_dates+session.duration.fuente$avg.session.duration,"%H:%M:%S") [1] "05:29:38" "00:14:15" "00:48:05" "16:40:00" "01:46:24" "02:03:15" [7] "15:37:07" "00:23:30" "20:08:48" "13:50:36" Jim On Thu, Nov 12, 2015 at 10:15 AM, Omar Andr? Gonz?les D?az < oma.gonzales at gmail.com> wrote:> Hi, > > I've a data frame with 3 columns: "mes", "fuente", "avg.sessions.duration". > > "avg.sessions.duration" is a column containing seconds. > > I need you help with: > > 1.- Help to put these values in "h:m:s" format. > . > > ======================================================> > I've found this german page: > > http://forum.r-statistik.de/viewtopic.php?f=25&t=5284 > > So I've tried: > > for (i in 1:nrow(session.duration.fuente)) { > > session.duration.fuente$avg.session.duration <- > format(as.POSIXct('0001-01-01 00:00:00') + > session.duration.fuente$avg.session.duration[i], "%H:%M:%S") > > } > > but got this error: > > Error in unclass(e1) + unclass(e2) : > non-numeric argument to binary operator > > ======================================================> > After that I've tried: strptime: > > session.duration.fuente$avg.session.duration <- > strptime(session.duration.fuente$avg.session.duration, "%H:%M:%OS") > > But got NAs. > > =======================================================> > Here is the data: > > > session.duration.fuente <- structure(list(mes = structure(c(1L, 1L, 1L, 1L, > 1L, 2L, 2L, > 2L, 2L, 2L), .Label = c("oct", "nov"), class = c("ordered", "factor" > )), fuente = c("adwords", "directo", "organico", "redes sociales", > "referral", "adwords", "directo", "organico", "redes sociales", > "referral"), avg.session.duration = c(970178, 1642455, 780485, > 3170400, 179184, 352995, 833827, 260610, 2318928, 49836)), row.names > c(NA, > -10L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), vars = list( > mes), drop = TRUE, .Names = c("mes", "fuente", "avg.session.duration" > )) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Thank you, Jim. Just to understand it: You replicated 10 times: "1970-01-01". Why this specific date? 2015-11-11 20:22 GMT-05:00 Jim Lemon <drjimlemon at gmail.com>:> Hi Omar, > There is some sort of error in your structure definition, but the > following works for me: > > session.duration.fuente <- > data.frame(mes=c(rep("oct",5),rep("nov",5)), > fuente=c("adwords", "directo", "organico", "redes sociales", > "referral", "adwords", "directo", "organico", "redes sociales", > "referral"), > avg.session.duration = c(970178, 1642455, 780485, > 3170400, 179184, 352995, 833827, 260610, 2318928, 49836)) > > base_dates<-strptime(rep("1970-01-01",10),"%Y-%m-%d") > format(base_dates+session.duration.fuente$avg.session.duration,"%H:%M:%S") > [1] "05:29:38" "00:14:15" "00:48:05" "16:40:00" "01:46:24" "02:03:15" > [7] "15:37:07" "00:23:30" "20:08:48" "13:50:36" > > Jim > > On Thu, Nov 12, 2015 at 10:15 AM, Omar Andr? Gonz?les D?az < > oma.gonzales at gmail.com> wrote: > >> Hi, >> >> I've a data frame with 3 columns: "mes", "fuente", >> "avg.sessions.duration". >> >> "avg.sessions.duration" is a column containing seconds. >> >> I need you help with: >> >> 1.- Help to put these values in "h:m:s" format. >> . >> >> ======================================================>> >> I've found this german page: >> >> http://forum.r-statistik.de/viewtopic.php?f=25&t=5284 >> >> So I've tried: >> >> for (i in 1:nrow(session.duration.fuente)) { >> >> session.duration.fuente$avg.session.duration <- >> format(as.POSIXct('0001-01-01 00:00:00') + >> session.duration.fuente$avg.session.duration[i], "%H:%M:%S") >> >> } >> >> but got this error: >> >> Error in unclass(e1) + unclass(e2) : >> non-numeric argument to binary operator >> >> ======================================================>> >> After that I've tried: strptime: >> >> session.duration.fuente$avg.session.duration <- >> strptime(session.duration.fuente$avg.session.duration, "%H:%M:%OS") >> >> But got NAs. >> >> =======================================================>> >> Here is the data: >> >> >> session.duration.fuente <- structure(list(mes = structure(c(1L, 1L, 1L, >> 1L, >> 1L, 2L, 2L, >> 2L, 2L, 2L), .Label = c("oct", "nov"), class = c("ordered", "factor" >> )), fuente = c("adwords", "directo", "organico", "redes sociales", >> "referral", "adwords", "directo", "organico", "redes sociales", >> "referral"), avg.session.duration = c(970178, 1642455, 780485, >> 3170400, 179184, 352995, 833827, 260610, 2318928, 49836)), row.names >> c(NA, >> -10L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), vars >> list( >> mes), drop = TRUE, .Names = c("mes", "fuente", "avg.session.duration" >> )) >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > >[[alternative HTML version deleted]]