
Untitled
By: a guest on
Jun 11th, 2012 | syntax:
None | size: 1.03 KB | hits: 17 | expires: Never
How to evaluate variable names in a list that are set in the environment?
envir1 <- new.env()
assign("a", 7, envir=envir1)
assign("b", 8, envir=envir1)
assign("x", 9, envir=envir1)
lis <- list(1,2, as.name("a"), 5, as.name("x"))
getNumbers2 <- function(li,pos) {
## Part where i dont know
return(li[[pos]]) ## dont works. the name of the variable is returned
}
getNumbers <- function(li,pos, env1) {
environment(getNumbers2) <- env1
getNumbers2(li,pos)
}
getNumbers(lis, 3, envir1)
a ## << wanna have 7 here
R> str(l[[3]])
symbol a
env1 <- new.env()
assign("a", 7, envir=env1)
assign("b", 8, envir=env1)
assign("x", 9, envir=env1)
ll <- list(1, 2, "a", 5, "x")
with(env1, get(ll[[3]]))
R> with(env1, get(ll[[3]]))
[1] 7
R> get(ll[[3]], envir = env1)
[1] 7
getNumbers <- function(obj, pos, env) {
get(obj[[pos]], envir = env)
}
R> getNumbers(ll, 3, env1)
[1] 7
R> env1[[ll[[3]]]]
[1] 7
getNumbers <- function(obj, pos, env) {
env[[obj[[pos]]]]
}
R> getNumbers(ll, 3, env1)
[1] 7