Hi RSVP,

On Tue, Mar 22, 2011 at 4:47 PM, RSVP <p...@ptrow.com> wrote:
> I have a list.
>
> my.list <- list(Tom=c(1,2,3), Dick=c(4,5,6), Harry=c(7,8,9))
>
> I assign one of the names of the list to a variable.
>
> name <- "Harry"
>
> I can access the value of the list using the variable as follows:
>
>  eval(parse(text=paste("my.list$", name, sep="")))

Woah, you don't want to do things that way.  The evil trio (eval,
parse, paste) only leads to pain (and we're not just talking early
grey hairs).

There is another extraction operator you should familiarize yourself
with.  "[" and similarly, "[[" (see ?"[[" for documentation).  Try
this then:

my.list <- list(Tom=c(1,2,3), Dick=c(4,5,6), Harry=c(7,8,9))
myname <- "Harry"
my.list[[myname]]  ## extract

my.list[[myname]] <- 11:13 ## assign
my.list[[myname]] ## extract

HTH,

Josh
>
> [1] 7 8 9
>
> But how do I change the value of my.list$Harry using the variable name? This
> doesn't work:
>
>  eval(parse(text=paste("my.list$", name, sep=""))) <- c(1,4,7)
>
> Error in eval(parse(text = paste("my.list$", name, sep = ""))) <- c(1,  :
>  target of assignment expands to non-language object
>
> The following only replaces the first element of my.list$Harry
>
>  my.list[name] <- c(1,4,7)
> Warning message:
> In my.list[name] <- c(1, 4, 7) :
>  number of items to replace is not a multiple of replacement length
>
>> my.list[name]
> $Harry
> [1] 1
>
> Any suggestions?
>
> Thanks.
>
>
>
>
>
> --
> View this message in context: 
> http://r.789695.n4.nabble.com/assigning-a-list-item-using-a-variable-for-a-name-tp3398084p3398084.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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.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.

Reply via email to