Thanks for your reply Ben! I don't think I want v to be identical to x... I guess I haven't put the question in the right context. What I'm actually trying to do is... (* indicates extra information, not necessarily relevant for my question, but to help put it in context)
A, some matrix (*a traceless, symmetric matrix of 0's, 1's (representing a graph)*) x<-list() x[[1]]<-1:nrow(A) for (i in x[[1]]){ if (A[1,i]==1) { x[[2]]<-x[[1]][!(x[[1]]==1)] for (j in x[[2]]){ if (A[i,j]==1){ path<-c(1,i,j) print(path) } } } } So, here I have used i and j to range over the elements of x[[1]], x[[2]] respectively. (*This prints all the paths of length 2 starting at vertex 1. But I'm trying to generalise this for a path of length nrow(A), i.e. a Hamiltonian path)*) I want to iterate this process a certain number of times, so instead of i,j I thought to use a list of scalars, v. I don't want v to be identical to x... I want v to be a list of scalars which range (inside a for loop) over an elements of the list x. (so instead of for (i in x[[k]]) I have for (v[[k]] in x[[k]])). I can see how they look similar, but I do think they're different objects. Hope this is clear. If you still think using 'x' itself would work, can you explain how so? -- View this message in context: http://n4.nabble.com/using-a-list-to-index-elements-of-a-list-tp1679184p1679253.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org 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.