[R] strange list structure question

markleeds at verizon.net markleeds at verizon.net
Tue Nov 4 01:56:50 CET 2008


my problem is more complex than below but I think below can suffice. i 
have a list and the name of it at the top level is GGG.  so, if i do an 
lapply and operate on lower components in the sublist, then I can do as 
shown in EXAMPLE 1 and what will come back will be named GGG at the top 
level.

but, suppose that , the function inside the lapply function was more 
complex and i wanted to actually use "GGG" in the function but also 
return it at the top level. I can't figure a way to do both things:

A) return the name GGG  from the lapply

and

B) use the name GGG  in the function that is called inside the lapply ?

Thanks for any suggestions on doing both ? I always think that I 
understand lists and then I always end up finding a new problem that i 
hadn't seen before.


# EXAMPLE ONE

dummylist <- list(list(x=1,y=2,z=3))
names(dummylist) <- "GGG"
print(dummylist)
print(str(dummylist))

# THIS RETURNS THE NAME GGG AT THE TOP LEVEL
one <- lapply(dummylist, function(.sublist) {
         lapply(1:3, function(.index) {  # could use a for loop here or 
whatever. it doesn't matter
                .sublist[[.index]] + 2
              })
       })

print(one)
print(str(one))
print(names(one))

# EXAMPLE TWO

# THIS LETS ME USE THE NAME BUT THEN IT DOESN"T GET RETURNED
two <- lapply(1:length(dummylist[[1]]),function(.index) {
              temp <- dummylist[[1]][[.index]] + 2
              names(temp) <- names(dummylist)   # DUMB USAGE JUST TO 
SHOW USAGE
              temp
            })

print(two)
print(str(two))
print(names(two))



More information about the R-help mailing list