Skip to content
Back to formatted view

Raw Message

Message-ID: <1354139014.34749.YahooMailNeo@web142602.mail.bf1.yahoo.com>
Date: 2012-11-28T21:43:34Z
From: arun
Subject: hhmm time format, strptime and %k
In-Reply-To: <CAAxdm-6cD7=ZuyvwAdXtQaGquNEV078uKETRns6HMj9eGhhDrA@mail.gmail.com>

Hi,
You could also use:
x$Time<-sprintf("%04d",x$Time)
?res<-xts(x[,-c(1,2)],order.by=as.POSIXct(paste(x[,1],x[,2],sep=" "),format="%m/%d/%Y %H%M"))
res
#????????????????????? Open?? High??? Low? Close????? Up??? Down? Volume
#2012-11-19 09:35:00 137.89 138.06 137.82 138.05 3202541 3013215?????? 0
#2012-11-19 09:40:00 138.04 138.40 138.02 138.38 2549660 2107595 4657255
#2012-11-19 09:45:00 138.38 138.40 138.18 138.19 1627379 1856318 3483697
#2012-11-19 09:50:00 138.20 138.32 138.20 138.30 1046133? 896423 1942556
#2012-11-19 09:55:00 138.30 138.49 138.30 138.41 1287646? 961604 2249250
#2012-11-19 10:00:00 138.41 138.49 138.39 138.43? 806043? 731641 1537684

A.K.




----- Original Message -----
From: jim holtman <jholtman at gmail.com>
To: Costas Vorlow <costas.vorlow at gmail.com>
Cc: r-help at r-project.org
Sent: Wednesday, November 28, 2012 4:33 PM
Subject: Re: [R] hhmm time format, strptime and %k

Try this? (prepend leading zero in some cases)


> x <- read.table(text = "? ? ? Date Time?  Open?  High? ? Low? Close? ? ? Up? ? Down? Volume
+ 1 11/19/2012? 935 137.89 138.06 137.82 138.05 3202541 3013215? ? ?  0
+ 2 11/19/2012? 940 138.04 138.40 138.02 138.38 2549660 2107595 4657255
+ 3 11/19/2012? 945 138.38 138.40 138.18 138.19 1627379 1856318 3483697
+ 4 11/19/2012? 950 138.20 138.32 138.20 138.30 1046133? 896423 1942556
+ 5 11/19/2012? 955 138.30 138.49 138.30 138.41 1287646? 961604 2249250
+ 6 11/19/2012 1000 138.41 138.49 138.39 138.43? 806043? 731641 1537684"
+? ?  , header = TRUE
+? ?  , as.is = TRUE
+? ?  )
> # make sure there is a leading zero on the time
> x$Time <- ifelse(nchar(x$Time) == 3, paste0('0', x$Time), x$Time)
> # now convert
> x$newTime <- as.POSIXct(paste(x$Date, x$Time), format = "%m/%d/%Y %H%M")
> x
? ? ? ? Date Time?  Open?  High? ? Low? Close? ? ? Up? ? Down? Volume
? ? ? ? ?  newTime
1 11/19/2012 0935 137.89 138.06 137.82 138.05 3202541 3013215? ? ?  0
2012-11-19 09:35:00
2 11/19/2012 0940 138.04 138.40 138.02 138.38 2549660 2107595 4657255
2012-11-19 09:40:00
3 11/19/2012 0945 138.38 138.40 138.18 138.19 1627379 1856318 3483697
2012-11-19 09:45:00
4 11/19/2012 0950 138.20 138.32 138.20 138.30 1046133? 896423 1942556
2012-11-19 09:50:00
5 11/19/2012 0955 138.30 138.49 138.30 138.41 1287646? 961604 2249250
2012-11-19 09:55:00
6 11/19/2012 1000 138.41 138.49 138.39 138.43? 806043? 731641 1537684
2012-11-19 10:00:00
>


On Wed, Nov 28, 2012 at 4:02 PM, Costas Vorlow <costas.vorlow at gmail.com> wrote:
> Hello,
>
> I am having trouble with the conversion specifications as described in
> the strptime help page.
>
>> head(dat)
>? ? ? ?  Date Time?  Open?  High? ? Low? Close? ? ? Up? ? Down? Volume
> 1 11/19/2012? 935 137.89 138.06 137.82 138.05 3202541 3013215? ? ?  0
> 2 11/19/2012? 940 138.04 138.40 138.02 138.38 2549660 2107595 4657255
> 3 11/19/2012? 945 138.38 138.40 138.18 138.19 1627379 1856318 3483697
> 4 11/19/2012? 950 138.20 138.32 138.20 138.30 1046133? 896423 1942556
> 5 11/19/2012? 955 138.30 138.49 138.30 138.41 1287646? 961604 2249250
> 6 11/19/2012 1000 138.41 138.49 138.39 138.43? 806043? 731641 1537684
>>
>
> As in the example above,? my data (column vectors in a dataframe) are
> time series swhich? have time stamps for hours spanning from 9:35am to
> 16:00 (column 2).
>
> The hours? are formatted as follows:
>
> 935 is 9:35, 940 is 9:40 ... hence
> 1600 is 16:00.
>
> When I convert the dataframe column for "Close" (dat[,6]? i.e., sixth
> column of the dataframe)? to a time series (xts):
>
> using
>
>? ? ?  SPYhf<-xts(dat[,6], as.POSIXct(paste(dat[,1], dat[,2]), format =
> "%m/%d/%Y %H%M"))
>
> I get NAs as indexes for the times where the hours are single digits
> (i.e. 9 am).? Thus, correct time stamps start at 10:00 and end at
> 16:00 (i.e., row 6 of dataframe onwards).
>
>? ? ? ? ? ? ? ? ? ? ? [,1]
> <NA>? ? ? ? ? ? ? ? 138.05
> <NA>? ? ? ? ? ? ? ? 138.38
> <NA>? ? ? ? ? ? ? ? 138.19
> <NA>? ? ? ? ? ? ? ? 138.30
> <NA>? ? ? ? ? ? ? ? 138.41
> 2012-11-19 10:00:00 138.43
>
> I tried using the %k specifier which the strptime help-page suggests
> that it's suitable? when AM hours are described with a single digit
> ("The 24-hour clock time with single digits preceded by a blank") but
> I can not get it to work.
>
> Thanks in advnace for your time and help.
> Best,
> Costas
>
> ______________________________________________
> 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.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

______________________________________________
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.