I thought this is a common question but rseek/google searches don't yield any relevant hit. I have a matrix of character strings, which are time stamps,> time.m[1:5,1:5][,1] [,2] [,3] [,4] [,5] [1,] "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" [2,] "08:00:21.996" "08:00:22.071" "08:00:23.821" "08:00:24.370" "08:00:25.573" [3,] "08:00:29.200" "08:00:29.200" "08:00:29.591" "08:00:30.368" "08:00:30.536" [4,] "08:00:31.073" "08:00:31.372" "08:00:31.384" "08:00:31.403" "08:00:31.867" [5,] "08:00:31.867" "08:00:31.867" "08:00:31.971" "08:00:34.571" "08:00:34.571" And i would like to convert it to a POSIXct matrix. I tried this, time1 = lapply(time.m, function(tt)strptime(tt, "%H:%M:%OS")) but it yields a list. Any tip is appreciated. Horace [[alternative HTML version deleted]]
time.m<- as.matrix(read.table(text=' "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:21.996" "08:00:22.071" "08:00:23.821" "08:00:24.370" "08:00:25.573" "08:00:29.200" "08:00:29.200" "08:00:29.591" "08:00:30.368" "08:00:30.536" "08:00:31.073" "08:00:31.372" "08:00:31.384" "08:00:31.403" "08:00:31.867" "08:00:31.867" "08:00:31.867" "08:00:31.971" "08:00:34.571" "08:00:34.571" ',sep="",header=FALSE,stringsAsFactors=FALSE)) colnames(time.m)<- NULL op<- options(digits.secs=3) ?res<-data.frame(lapply(seq_len(ncol(time.m)),function(i) strptime(time.m[,i],"%H:%M:%OS"))) colnames(res)<- paste0("X",1:5) ? str(res) #'data.frame':??? 5 obs. of? 5 variables: # $ X1: POSIXct, format: "2013-04-26 08:00:20.799" "2013-04-26 08:00:21.996" ... # $ X2: POSIXct, format: "2013-04-26 08:00:20.799" "2013-04-26 08:00:22.071" ... # $ X3: POSIXct, format: "2013-04-26 08:00:20.799" "2013-04-26 08:00:23.821" ... # $ X4: POSIXct, format: "2013-04-26 08:00:20.799" "2013-04-26 08:00:24.369" ... # $ X5: POSIXct, format: "2013-04-26 08:00:20.799" "2013-04-26 08:00:25.572" ... options(op) A.K. ----- Original Message ----- From: hh wt <horacetso at gmail.com> To: r-help at r-project.org Cc: Sent: Friday, April 26, 2013 1:51 PM Subject: [R] converting character matrix to POSIXct matrix I thought this is a common question but rseek/google searches don't yield any relevant hit. I have a matrix of character strings, which are time stamps,> time.m[1:5,1:5]? ? [,1]? ? ? ? ? [,2]? ? ? ? ? [,3]? ? ? ? ? [,4]? ? ? ? ? [,5] [1,] "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" [2,] "08:00:21.996" "08:00:22.071" "08:00:23.821" "08:00:24.370" "08:00:25.573" [3,] "08:00:29.200" "08:00:29.200" "08:00:29.591" "08:00:30.368" "08:00:30.536" [4,] "08:00:31.073" "08:00:31.372" "08:00:31.384" "08:00:31.403" "08:00:31.867" [5,] "08:00:31.867" "08:00:31.867" "08:00:31.971" "08:00:34.571" "08:00:34.571" And i would like to convert it to a POSIXct matrix. I tried this, time1 = lapply(time.m, function(tt)strptime(tt, "%H:%M:%OS")) but it yields a list. Any tip is appreciated. Horace ??? [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list 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.
Hello, Use sapply instead. Hope this helps, Rui Barradas Em 26-04-2013 18:51, hh wt escreveu:> I thought this is a common question but rseek/google searches don't yield > any relevant hit. > > I have a matrix of character strings, which are time stamps, > >> time.m[1:5,1:5] > [,1] [,2] [,3] [,4] [,5] > > [1,] "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" > "08:00:20.799" > [2,] "08:00:21.996" "08:00:22.071" "08:00:23.821" "08:00:24.370" > "08:00:25.573" > [3,] "08:00:29.200" "08:00:29.200" "08:00:29.591" "08:00:30.368" > "08:00:30.536" > [4,] "08:00:31.073" "08:00:31.372" "08:00:31.384" "08:00:31.403" > "08:00:31.867" > [5,] "08:00:31.867" "08:00:31.867" "08:00:31.971" "08:00:34.571" > "08:00:34.571" > > And i would like to convert it to a POSIXct matrix. I tried this, > > time1 = lapply(time.m, function(tt)strptime(tt, "%H:%M:%OS")) > > but it yields a list. > > Any tip is appreciated. > > > Horace > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > 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. >
Hello, You should keep this on the list, the odds of getting more and better answers are greater. I don't know if the following is what you want. apply(time.m, 2, function(tt) as.POSIXct(tt, format = "%H:%M:%OS")) Hope this helps, Rui Barradas Em 26-04-2013 21:49, hh wt escreveu:> sapply doesn't do it. It just spits out the guts, > > $`08:00:20.799.sec` > [1] 20.799 > > $`08:00:20.799.min` > [1] 0 > > $`08:00:20.799.hour` > [1] 8 > > $`08:00:20.799.mday` > [1] 26 > > $`08:00:20.799.mon` > [1] 3 > > $`08:00:20.799.year` > [1] 113 > > > On Fri, Apr 26, 2013 at 11:25 AM, Rui Barradas <ruipbarradas at sapo.pt> wrote: > >> Hello, >> >> Use sapply instead. >> >> >> Hope this helps, >> >> Rui Barradas >> >> Em 26-04-2013 18:51, hh wt escreveu: >> >>> I thought this is a common question but rseek/google searches don't yield >>> any relevant hit. >>> >>> I have a matrix of character strings, which are time stamps, >>> >>> time.m[1:5,1:5] >>>> >>> [,1] [,2] [,3] [,4] [,5] >>> >>> [1,] "08:00:20.799" "08:00:20.799" "08:00:20.799" "08:00:20.799" >>> "08:00:20.799" >>> [2,] "08:00:21.996" "08:00:22.071" "08:00:23.821" "08:00:24.370" >>> "08:00:25.573" >>> [3,] "08:00:29.200" "08:00:29.200" "08:00:29.591" "08:00:30.368" >>> "08:00:30.536" >>> [4,] "08:00:31.073" "08:00:31.372" "08:00:31.384" "08:00:31.403" >>> "08:00:31.867" >>> [5,] "08:00:31.867" "08:00:31.867" "08:00:31.971" "08:00:34.571" >>> "08:00:34.571" >>> >>> And i would like to convert it to a POSIXct matrix. I tried this, >>> >>> time1 = lapply(time.m, function(tt)strptime(tt, "%H:%M:%OS")) >>> >>> but it yields a list. >>> >>> Any tip is appreciated. >>> >>> >>> Horace >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________**________________ >>> R-help at r-project.org mailing list >>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >>> PLEASE do read the posting guide http://www.R-project.org/** >>> posting-guide.html <http://www.R-project.org/posting-guide.html> >>> and provide commented, minimal, self-contained, reproducible code. >>> >>> >