Hi Ivan,

thank you very much for your detailed explanations and response!
Please excuse, that I did not include a reproducible example.

Yes, what I am looking for is such a function - but I suspect, that it does not 
exist already, so I have to write it on my own.

Best,
Friedericksen

On 11/11/2010 10:23 AM, Ivan Calandra wrote:
Hi,

A reproducible example would have been nice, but a correct code even more (you 
forgot some commas)!

So if you meant this:
x <- list(
list(
list(df1,df2),
list(df3,
list(df4,df5)),
list(df6,df7)))

check str(x): (I removes the details of each df)
List of 1
$ :List of 3
..$ :List of 2
.. ..$ :'data.frame': 10 obs. of 2 variables: ## df1
.. ..$ :'data.frame': 10 obs. of 2 variables: ## df2
..$ :List of 2
.. ..$ :'data.frame': 10 obs. of 2 variables: ## df3
.. ..$ :List of 2
.. .. ..$ :'data.frame': 10 obs. of 2 variables: ## df4
.. .. ..$ :'data.frame': 10 obs. of 2 variables: ## df5
..$ :List of 2
.. ..$ :'data.frame': 10 obs. of 2 variables: ## df6
.. ..$ :'data.frame': 10 obs. of 2 variables: ## df7

And check x: (I removed the details again)
[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
df1
[[1]][[1]][[2]]
df2

[[1]][[2]]
[[1]][[2]][[1]]
df3
[[1]][[2]][[2]]
[[1]][[2]][[2]][[1]]
df4
[[1]][[2]][[2]][[2]]
df5

[[1]][[3]]
[[1]][[3]][[1]]
df6
[[1]][[3]][[2]]
df7

If you want to access them, you need to follow the structure of your list, e.g.
for df1:
x[[1]][[1]][[1]]
for df5:
x[[1]][[2]][[2]][[2]]

You need to access them with indexes because the list elements are unnamed.
Now if you do:
x <- list(uppermost=list(
medium1=list(df1=df1,df2=df2),
medium2=list(df3=df3,
lowermost=list(df4=df4,df5=df5)),
medium3=list(df6=df6,df7=df7)))

You can access them with names (but you still need to follow the structure, 
i.e. x[[df5]] cannot work):
For df1:
x$uppermost$medium1$df1 or x[["uppermost"]][["medium1"]][["df1"]]
for df5:
x$uppermost$medium2$lowermost$df5 or 
x[["uppermost"]][["medium2"]][["lowermost"]][["df5"]]


But I guess you can write a function that would "search" through the structure 
of x for a given df (that has to be named then) and return it.
Maybe you have your reasons to have such a complicated list, but if it were me, 
I would make it easier to understand and to access (i.e. less nested, max 2 
levels)

HTH,
Ivan




Le 11/11/2010 09:05, Friedericksen Hope a écrit :
Hello,

I have a nested named list structure, like the following:

x <- list(
list(
list(df1,df2)
list(df3,
list(df4,df5))
list(df6,df7)))

with df1...d7 as data frames. Every data frame is named.

Is there a way to get a specific named element in x?

so, for example,

x[[c("df5")]] gives me the data frame 5?

Thank you in advance!

Best,
Friedericksen

______________________________________________
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.



______________________________________________
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.

Reply via email to