[R] list of lists question
Spencer Graves
spencer.graves at pdf.com
Wed Nov 24 04:04:27 CET 2004
Is the following more like what you want:
a=c(1,1,1,1,1) # generate the first list
b=c(2,2,2) # generate a second list
d=list(a,b) # make a list of a and b
(
e=c(d,a)
)
[[1]]
[1] 1 1 1 1 1
[[2]]
[1] 2 2 2
[[3]]
[1] 1
[[4]]
[1] 1
[[5]]
[1] 1
[[6]]
[1] 1
[[7]]
[1] 1
If no, have you read sec. 6 in "An Introduction to R" [the first
option available from help.start()]?
In this example, note that e[1] is a list with only one
attributes, namely the vector 1 1 1 1 1; e[[1]] is not a list but that
vector itself.
hope this helps. spencer graves
Karla Sartor wrote:
> Hello all,
> As a general programming question I can't seem to figure out how to
> make a list of lists in R.
> As matrices won't work as they have to be rectangular.
>
> I am sure that there is an easy solution but...
>
> the specific situation is this:
> - I have created a Tukey confidence interval table and have listed the
> means that are not significantly different
> - then using these not significantly different pairs I have created
> the groups of means that are not significantly different from each other
> the issue then is that many of these lists are subsets of other lists
> and I need to check for this.
>
> Below is a little program is illustrate the issue
>
> > a=c(1,1,1,1,1) # generate the first list
> > b=c(2,2,2) # generate a second list
> > c=c(a,b) #combine them
> > cat(c, "\n") # and print
> 1 1 1 1 1 2 2 2 # this is 1-D!!! ahh
> > d=list(a,b) # make a list of a and b
> > d # and print
> [[1]] #this is exactly what I
> want, but continue
> [1] 1 1 1 1 1
>
> [[2]]
> [1] 2 2 2
>
> > e=list(d,a) # now on the next iteration I
> need to add another list to this list of lists
> > e # and print
> [[1]] # ahh all hell has broken
> loose and this is not what I want
> [[1]][[1]] # desired result below
> [1] 1 1 1 1 1
>
> [[1]][[2]]
> [1] 2 2 2
>
>
> [[2]]
> [1] 1 1 1 1 1
>
> -------------
> desired result
>
> #wrong code but this is what I want to happen
> a=c(1,1,1,1,1,1,1)
> for(i in 1:5) {
> a=list(a,1:5)
> }
>
> output I want is (something like)
> [1] 1 1 1 1 1 1 1
> [2] 1 2 3 4 5
> [3] 1 2 3 4 5
> [4] 1 2 3 4 5
> [5] 1 2 3 4 5
> [6] 1 2 3 4 5
>
> so then I could call cat(a[1]) and get 1 1 1 1 1 1 1 1 and cat(a[2])
> and get 1 2 3 4 5
>
> Anyone know the answer (hopefully simple)
>
> Cheers,
>
> Karla Sartor
>
>
>
> ----------------------------------------------------------
> Karla Sartor
> Montana State University - LRES
> ksartor at montana.edu
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
--
Spencer Graves, PhD, Senior Development Engineer
O: (408)938-4420; mobile: (408)655-4567
More information about the R-help
mailing list