How can I declare an empty zoo object?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

How can I declare an empty zoo object?

miao
Hi,

   I let xzoo be an empty  object:

> xzoo<-{}


   and I have an existing zoo object x1zoo_f. I would like to combine
the two to make a new zoo object, and continue doing so in a loop,
which is not shown here. However, when I type


> xzoo<-cbind(xzoo, x1zoo_f)


   An error message emerges


Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
  “x” : attempt to define invalid zoo object


   Is there any way to define an empty zoo object?


  Thanks,


Miao

        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

Michael Weylandt
On Mon, Jul 30, 2012 at 11:18 PM, jpm miao <[hidden email]> wrote:
> Hi,
>
>    I let xzoo be an empty  object:
>
>> xzoo<-{}

This sounds like the start of a bad idea....

>
>
>    and I have an existing zoo object x1zoo_f. I would like to combine
> the two to make a new zoo object, and continue doing so in a loop,
> which is not shown here. However, when I type
>
>
>> xzoo<-cbind(xzoo, x1zoo_f)

Yep: the real answer is "don't do that." Since R is
copy-on-write+pass-by-reference and a few other nice things, this will
be painfully gut-wrenchingly paint-dryingly slow :-) Much better is to
make all your "x1zoo_f" objects and cbind them at once.

The perils of this idea and the appropriate fixings thereof have been
discussed here there and everywhere, but I think Pat Burn's
presentation in "the R Inferno" is the best (and certainly the most
fun) -- it's a worthwhile read and, perhaps an even higher compliment,
a worthwhile re-read.

Based on my rough memories of your recent posts, you won't understand
it all in the first pass (few do -- I certainly don't), but over time
you'll gain immensely from the work of one of R's wisest Virgils.

>
>
>    An error message emerges
>
>
> Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
>   “x” : attempt to define invalid zoo object
>
>
>    Is there any way to define an empty zoo object?
>

For completeness,

xzoo <- zoo()

But like I said: don't do that.

Cheers,
Michael

>
>   Thanks,
>
>
> Miao
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> [hidden email] 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.
>

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

arun kirshna
In reply to this post by miao


Hi,

When you cbind two zoo objects, I guess the index should match, otherwise it gives warning messages:

x1zoo_f<-zoo(rnorm(5,25),c(1,5,10,15,9))
xzoo<-zoo(c(5,9,10,15),c(1,5,9,10,15))
cbind(xzoo,x1zoo_f)
   xzoo  x1zoo_f
1     5 24.85877
5     9 25.09264
9    10 25.79896
10   15 26.70625
15    5 24.63533
#If index is different
xzoo<-zoo(c(5,9,10,15,25), 1:5)
 cbind(xzoo,x1zoo_f)
   xzoo  x1zoo_f
1     5 24.85877
2     9       NA
3    10       NA
4    15       NA
5    25 25.09264
9    NA 25.79896
10   NA 26.70625
15   NA 24.63533
Warning message:
In merge.zoo(..., all = all, fill = fill, suffixes = suffixes, retclass = "zoo",  :
  Index vectors are of different classes: integer numeric
######## now, with empty zoo object with same index
xzoo<-zoo(,c(1,5,9,10,15))
 str(xzoo)
‘zoo’ series (without observations)
 cbind(xzoo,x1zoo_f)
    x1zoo_f
1  24.85877
5  25.09264
9  25.79896
10 26.70625
15 24.63533

A.K.




From: jpm miao <[hidden email]>

To: r-help <[hidden email]>
Cc:
Sent: Tuesday, July 31, 2012 12:18 AM
Subject: [R] How can I declare an empty zoo object?

Hi,

   I let xzoo be an empty  object:

> xzoo<-{}


   and I have an existing zoo object x1zoo_f. I would like to combine
the two to make a new zoo object, and continue doing so in a loop,
which is not shown here. However, when I type


> xzoo<-cbind(xzoo, x1zoo_f)


   An error message emerges


Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
  “x” : attempt to define invalid zoo object


   Is there any way to define an empty zoo object?


  Thanks,


Miao

    [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

miao
In reply to this post by Michael Weylandt
Hi Michael,

   1. I try this

        xzoo <- zoo()

       and it does work. OK, I will read the reference you provide to find
out why not to do so

    2. How can I create an array of zoo objects?

    3. Do you mean by "R's wisest virgil" Pat Burns' R Inferno?

To Arun:

    Even when indices (dates) of two zoo object don't match, I can cbind
them. It works for me!

    Thanks,

Miao



2012/7/31 R. Michael Weylandt <[hidden email]>

> On Mon, Jul 30, 2012 at 11:18 PM, jpm miao <[hidden email]> wrote:
> > Hi,
> >
> >    I let xzoo be an empty  object:
> >
> >> xzoo<-{}
>
> This sounds like the start of a bad idea....
>
> >
> >
> >    and I have an existing zoo object x1zoo_f. I would like to combine
> > the two to make a new zoo object, and continue doing so in a loop,
> > which is not shown here. However, when I type
> >
> >
> >> xzoo<-cbind(xzoo, x1zoo_f)
>
> Yep: the real answer is "don't do that." Since R is
> copy-on-write+pass-by-reference and a few other nice things, this will
> be painfully gut-wrenchingly paint-dryingly slow :-) Much better is to
> make all your "x1zoo_f" objects and cbind them at once.
>
> The perils of this idea and the appropriate fixings thereof have been
> discussed here there and everywhere, but I think Pat Burn's
> presentation in "the R Inferno" is the best (and certainly the most
> fun) -- it's a worthwhile read and, perhaps an even higher compliment,
> a worthwhile re-read.
>
> Based on my rough memories of your recent posts, you won't understand
> it all in the first pass (few do -- I certainly don't), but over time
> you'll gain immensely from the work of one of R's wisest Virgils.
>
> >
> >
> >    An error message emerges
> >
> >
> > Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
> >   “x” : attempt to define invalid zoo object
> >
> >
> >    Is there any way to define an empty zoo object?
> >
>
> For completeness,
>
> xzoo <- zoo()
>
> But like I said: don't do that.
>
> Cheers,
> Michael
>
> >
> >   Thanks,
> >
> >
> > Miao
> >
> >         [[alternative HTML version deleted]]
> >
> >
> > ______________________________________________
> > [hidden email] 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.
> >
>
        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

arun kirshna
Hi,

#Without indices

 xzoo<-zoo()
 x1zoo_f<-zoo(1:10,)
 cbind(xzoo,x1zoo_f)
   x1zoo_f
1        1
2        2
3        3
4        4
5        5
6        6
7        7
8        8
9        9
10      10


#With indices on one
x1zoo_f<-zoo(1:5,1:10)
> cbind(xzoo,x1zoo_f)
   x1zoo_f
1        1
2        2
3        3
4        4
5        5
6        1
7        2
8        3
9        4
10       5

#with a different index.  Here, I get warning message.

 x1zoo_f<-zoo(1:5,c(5,6,8,11,13))
> cbind(xzoo,x1zoo_f)
   x1zoo_f
5        1
6        2
8        3
11       4
13       5
Warning message:
In merge.zoo(..., all = all, fill = fill, suffixes = suffixes, retclass = "zoo",  :
  Index vectors are of different classes: integer numeric


I am using R 2.15.  Don't know if you get warnings or not.
A.K.

________________________________
From: jpm miao <[hidden email]>
To: R. Michael Weylandt <[hidden email]>
Cc: r-help <[hidden email]>; [hidden email]
Sent: Tuesday, July 31, 2012 3:40 AM
Subject: Re: [R] How can I declare an empty zoo object?


Hi Michael, 

   1. I try this  

        xzoo <- zoo()

       and it does work. OK, I will read the reference you provide to find out why not to do so

    2. How can I create an array of zoo objects? 

    3. Do you mean by "R's wisest virgil" Pat Burns' R Inferno? 

To Arun: 

    Even when indices (dates) of two zoo object don't match, I can cbind them. It works for me!

    Thanks,

Miao  




2012/7/31 R. Michael Weylandt <[hidden email]>

On Mon, Jul 30, 2012 at 11:18 PM, jpm miao <[hidden email]> wrote:

>> Hi,
>>
>>    I let xzoo be an empty  object:
>>
>>> xzoo<-{}
>
>This sounds like the start of a bad idea....
>
>
>>
>>
>>    and I have an existing zoo object x1zoo_f. I would like to combine
>> the two to make a new zoo object, and continue doing so in a loop,
>> which is not shown here. However, when I type
>>
>>
>>> xzoo<-cbind(xzoo, x1zoo_f)
>
>Yep: the real answer is "don't do that." Since R is
>copy-on-write+pass-by-reference and a few other nice things, this will
>be painfully gut-wrenchingly paint-dryingly slow :-) Much better is to
>make all your "x1zoo_f" objects and cbind them at once.
>
>The perils of this idea and the appropriate fixings thereof have been
>discussed here there and everywhere, but I think Pat Burn's
>presentation in "the R Inferno" is the best (and certainly the most
>fun) -- it's a worthwhile read and, perhaps an even higher compliment,
>a worthwhile re-read.
>
>Based on my rough memories of your recent posts, you won't understand
>it all in the first pass (few do -- I certainly don't), but over time
>you'll gain immensely from the work of one of R's wisest Virgils.
>
>
>>
>>
>>    An error message emerges
>>
>>
>> Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
>>   “x” : attempt to define invalid zoo object
>>
>>
>>    Is there any way to define an empty zoo object?
>>
>
>For completeness,
>
>xzoo <- zoo()
>
>But like I said: don't do that.
>
>Cheers,
>Michael
>
>>
>>   Thanks,
>>
>>
>> Miao
>>
>>         [[alternative HTML version deleted]]
>>
>>
>> ______________________________________________
>> [hidden email] 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.
>>
>

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

Michael Weylandt
In reply to this post by miao
On Tue, Jul 31, 2012 at 2:40 AM, jpm miao <[hidden email]> wrote:

> Hi Michael,
>
>    1. I try this
>
>         xzoo <- zoo()
>
>        and it does work. OK, I will read the reference you provide to find
> out why not to do so
>
>     2. How can I create an array of zoo objects?

I'm not quite sure what you mean by an array of zoo objects: the
"data" of the zoo object can be a matrix so you can have rows and
columns and all that. Alternatively you can stick the different zoo
objects in a list (as you can with any R object)

>
>     3. Do you mean by "R's wisest virgil" Pat Burns' R Inferno?

Well, Pat Burns himself really -- see, e.g.,
http://www.brown.edu/Departments/Italian_Studies/LD/numbers/04/hollander.html
or less technically, http://www.shmoop.com/inferno/virgil.html.

Michael

>
> To Arun:
>
>     Even when indices (dates) of two zoo object don't match, I can cbind
> them. It works for me!
>
>     Thanks,
>
> Miao
>
>
>
> 2012/7/31 R. Michael Weylandt <[hidden email]>
>>
>> On Mon, Jul 30, 2012 at 11:18 PM, jpm miao <[hidden email]> wrote:
>> > Hi,
>> >
>> >    I let xzoo be an empty  object:
>> >
>> >> xzoo<-{}
>>
>> This sounds like the start of a bad idea....
>>
>>
>> >
>> >
>> >    and I have an existing zoo object x1zoo_f. I would like to combine
>> > the two to make a new zoo object, and continue doing so in a loop,
>> > which is not shown here. However, when I type
>> >
>> >
>> >> xzoo<-cbind(xzoo, x1zoo_f)
>>
>> Yep: the real answer is "don't do that." Since R is
>> copy-on-write+pass-by-reference and a few other nice things, this will
>> be painfully gut-wrenchingly paint-dryingly slow :-) Much better is to
>> make all your "x1zoo_f" objects and cbind them at once.
>>
>> The perils of this idea and the appropriate fixings thereof have been
>> discussed here there and everywhere, but I think Pat Burn's
>> presentation in "the R Inferno" is the best (and certainly the most
>> fun) -- it's a worthwhile read and, perhaps an even higher compliment,
>> a worthwhile re-read.
>>
>> Based on my rough memories of your recent posts, you won't understand
>> it all in the first pass (few do -- I certainly don't), but over time
>> you'll gain immensely from the work of one of R's wisest Virgils.
>>
>>
>> >
>> >
>> >    An error message emerges
>> >
>> >
>> > Error in zoo(structure(x, dim = dim(x)), index(x), ...) :
>> >   “x” : attempt to define invalid zoo object
>> >
>> >
>> >    Is there any way to define an empty zoo object?
>> >
>>
>> For completeness,
>>
>> xzoo <- zoo()
>>
>> But like I said: don't do that.
>>
>> Cheers,
>> Michael
>>
>>
>> >
>> >   Thanks,
>> >
>> >
>> > Miao
>> >
>> >         [[alternative HTML version deleted]]
>> >
>> >
>> > ______________________________________________
>> > [hidden email] 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.
>> >
>
>

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: How can I declare an empty zoo object?

Gabor Grothendieck
In reply to this post by arun kirshna
On Tue, Jul 31, 2012 at 8:23 AM, arun <[hidden email]> wrote:

> Hi,
>
> #Without indices
>
>  xzoo<-zoo()
>  x1zoo_f<-zoo(1:10,)
>  cbind(xzoo,x1zoo_f)
>    x1zoo_f
> 1        1
> 2        2
> 3        3
> 4        4
> 5        5
> 6        6
> 7        7
> 8        8
> 9        9
> 10      10
>
>
> #With indices on one
> x1zoo_f<-zoo(1:5,1:10)
>> cbind(xzoo,x1zoo_f)
>    x1zoo_f
> 1        1
> 2        2
> 3        3
> 4        4
> 5        5
> 6        1
> 7        2
> 8        3
> 9        4
> 10       5
>
> #with a different index.  Here, I get warning message.
>
>  x1zoo_f<-zoo(1:5,c(5,6,8,11,13))
>> cbind(xzoo,x1zoo_f)
>    x1zoo_f
> 5        1
> 6        2
> 8        3
> 11       4
> 13       5
> Warning message:
> In merge.zoo(..., all = all, fill = fill, suffixes = suffixes, retclass = "zoo",  :
>   Index vectors are of different classes: integer numeric

Using this will get rid of the warning:

   merge(z, zoo(, numeric(0)))

if you are trying to combine it with a zoo object, z, having a numeric index.

--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

______________________________________________
[hidden email] 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.