[R] lapply / mapply and assignments

Charles C. Berry cberry at tajo.ucsd.edu
Mon Oct 12 23:35:30 CEST 2009


On Mon, 12 Oct 2009, Magnus Torfason wrote:

> I have a list of isometric structures, and I want to change the same part of 
> each structure in the list, assigning one element of a vector to each of 
> these parts.
>
> In other words, I want to achieve the following:
>
>>  l <- list( list(a=1,b=2), list(a=3,b=4))
>>  unlist(lapply(l, "[[", "a"))
> [1] 1 3
>>
>>  # This will not actually work
>>  l[[]]["a"] <- 5:6
>>
>>  unlist(lapply(l, "[[", "a"))
> [1] 5 6
>
> I figure mapply is the solution to the problem, and I tried the following:
>
>>  mapply( "[<-", l, "a", 5:6)
>
> But the result is not the same shape as the original.
>
> Any thoughts?

See

 	?relist

something like:

 	relist( unlist( mapply( "[<-", l, "a", 5:6) ), l )


HTH,

Chuck

>
> Best,
> Magnus
>
> ______________________________________________
> R-help at 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.
>
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901




More information about the R-help mailing list