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.