From ggrothendieck at gmail.com  Mon Jun 27 21:49:25 2016
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Mon, 27 Jun 2016 15:49:25 -0400
Subject: [Rd] stack problem
In-Reply-To: <CAOQ5Nydf=F8BCPc3a2+JYmU28zUfy9zg32bfK2m7JX_RKCxgUg@mail.gmail.com>
References: <CAP01uRkHWezoiKQNbKCV6oCT9tqDiiQU5mzQO0iS_GCyEVMkLQ@mail.gmail.com>
	<CAOQ5Nydf=F8BCPc3a2+JYmU28zUfy9zg32bfK2m7JX_RKCxgUg@mail.gmail.com>
Message-ID: <CAP01uRmBQ8yu=8iN_m672mDA_ks68rXEtb4LDHifRnR3uobzcA@mail.gmail.com>

One would normally want the original order that so that one can stack
a list, operate on the result and then unstack it back with the
unstacked result having the same ordering as the original.

LL <- list(z = 1:3, a = list())
# since we can't do s <- stack(LL,. drop = FALSE) do this instead:
s <- transform(stack(LL), ind = factor(as.character(ind), levels = names(LL)))
unstack(s)




On Mon, Jun 27, 2016 at 2:55 PM, Michael Lawrence
<lawrence.michael at gene.com> wrote:
> I'll add the drop argument but I'm wondering about the order of the
> levels. Should we set the levels to unique(names(x)) or sort them,
> too?
>
> On Mon, Jun 27, 2016 at 10:39 AM, Gabor Grothendieck
> <ggrothendieck at gmail.com> wrote:
>> stack() seems to drop empty levels.  Perhaps there could be a
>> drop=FALSE argument if one wanted all the original levels.  In the
>> example below, we may wish to retain level "b" in s$ind even though
>> component LL$b has length 0.
>>
>>> LL <- list(a = 1:3, b = list())
>>> s <- stack(LL)
>>> str(s)
>> 'data.frame':   3 obs. of  2 variables:
>>  $ values: int  1 2 3
>>  $ ind   : Factor w/ 1 level "a": 1 1 1
>>
>>
>> --
>> Statistics & Software Consulting
>> GKX Group, GKX Associates Inc.
>> tel: 1-877-GKX-GROUP
>> email: ggrothendieck at gmail.com
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>



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



[Rd] stack problem
Gabor Grothendieck