[R] Time problems (POSIXct)
Gabor Grothendieck
ggrothendieck at gmail.com
Tue May 25 13:30:54 CEST 2010
Yes, its possible but if you have date data Date class would be the
better choice. See R News 4/1.
On Tue, May 25, 2010 at 7:26 AM, Research <risk2009 at ath.forthnet.gr> wrote:
> Thanks Gabor,
>
> I suppose that in the example below, you can convet Date to POSIXct as
> well, can't you?
>
> Best,
> Costas
>
>
> On 20/05/2010 18:08, Gabor Grothendieck wrote:
>>
>> The warning message does tell you exactly what was wrong. You are
>> trying to merge zoo objects that have two different index classes.
>> The first is "POSIXct" and the second is "Date" class. Next time
>> please provide your data in reproducible form
>> as shown here:
>>
>>
>>>
>>> library(zoo)
>>> z1<- zoo(1:6, as.Date(c("1950-01-05", "1950-01-06", "1950-01-09",
>>>
>>
>> + "1950-01-10", "1950-01-11", "1950-01-12")))
>>
>>>
>>> z2<- zoo(c(16.66, 16.85, 16.93, 16.98, 17.08, 17.03),
>>>
>>
>> + as.POSIXct(c("1950-01-03, GMT", "1950-01-04, GMT", "1950-01-05, GMT",
>> + "1950-01-06, GMT", "1950-01-09 GMT", "1950-01-10 GMT")))
>>
>>>
>>> merge(z1, z2 = aggregate(z2, as.Date, identity))
>>>
>>
>> z1 z2
>> 1950-01-03 NA 16.66
>> 1950-01-04 NA 16.85
>> 1950-01-05 1 16.93
>> 1950-01-06 2 16.98
>> 1950-01-09 3 17.08
>> 1950-01-10 4 17.03
>> 1950-01-11 5 NA
>> 1950-01-12 6 NA
>>
>>>
>>> # or
>>> z2.Date<- z2
>>> time(z2.Date)<- as.Date(time(z2.Date))
>>>
>>> merge(z1, z2.Date)
>>>
>>
>> z1 z2.Date
>> 1950-01-03 NA 16.66
>> 1950-01-04 NA 16.85
>> 1950-01-05 1 16.93
>> 1950-01-06 2 16.98
>> 1950-01-09 3 17.08
>> 1950-01-10 4 17.03
>> 1950-01-11 5 NA
>> 1950-01-12 6 NA
>>
>>
>> On Thu, May 20, 2010 at 10:48 AM, Research<risk2009 at ath.forthnet.gr>
>> wrote:
>>
>>>
>>> Hello,
>>>
>>> I have a zoo time series object (say a) with the following time
>>> stamp/format
>>>
>>>
>>>
>>> [1] "1950-01-03 GMT" "1950-01-04 GMT" "1950-01-05 GMT" "1950-01-06 GMT"
>>> [5] "1950-01-09 GMT" "1950-01-10 GMT"
>>>
>>>
>>> and another (say b) with
>>>
>>>
>>> [1] "1950-01-05" "1950-01-06" "1950-01-09" "1950-01-10" "1950-01-11"
>>> [6] "1950-01-12"
>>>
>>>
>>> I want to merge these series but when I try:
>>>
>>>
>>>
>>>>
>>>> head(merge(a, b ))
>>>>
>>>
>>> a b
>>> 1950-01-03 02:00:00 16.66 NA
>>> 1950-01-04 02:00:00 16.85 NA
>>> 1950-01-05 02:00:00 16.93 NA
>>> 1950-01-06 02:00:00 16.98 NA
>>> 1950-01-09 02:00:00 17.08 NA
>>> 1950-01-10 02:00:00 17.03 NA
>>> Warning message:
>>> In merge.zoo(a, b) :
>>> Index vectors are of different classes: POSIXt Date
>>>
>>>>
>>>>
>>>
>>> Anybody can help? I tried as.POSIXct(a,tz="GMT") but it doesn't seem to
>>> work....
>>>
>>> Many thanks in advance!
>>>
>>> Costas
>>> _
>>> platform i386-pc-mingw32
>>> arch i386
>>> os mingw32
>>> system i386, mingw32
>>> status
>>> major 2
>>> minor 10.1
>>> year 2009
>>> month 12
>>> day 14
>>> svn rev 50720
>>> language R
>>> version.string R version 2.10.1 (2009-12-14)
>>>
>>>>
>>>>
>>>
>>> ______________________________________________
>>> 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.
>>>
>>>
>>
>> __________ Information from ESET Smart Security, version of virus
>> signature database 5133 (20100520) __________
>>
>> The message was checked by ESET Smart Security.
>>
>> http://www.eset.com
>>
>>
>>
>>
>>
>
>
More information about the R-help
mailing list