[R] list of lists question
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 [EMAIL PROTECTED] __ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
RE: [R] list of lists question
From: Karla Sartor 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) Indeed: Lists are vectors. You use c() to concatenate vectors, so you also use it for lists. E.g., a - list(rep(1, 5)) for (i in 1:2) a - c(a, list(1:5)) a [[1]] [1] 1 1 1 1 1 [[2]] [1] 1 2 3 4 5 [[3]] [1] 1 2 3 4 5 Andy Cheers, Karla Sartor -- Karla Sartor Montana State University - LRES [EMAIL PROTECTED] __ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html __ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Re: [R] list of lists question
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 [EMAIL PROTECTED] __ [EMAIL PROTECTED] 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 __ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html