[Rd] stack problem

Gabor Grothendieck ggrothendieck at gmail.com
Mon Jun 27 21:49:25 CEST 2016


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



More information about the R-devel mailing list