[R] changing a list element's name during execution in lapply - possible?

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jan 1 16:05:12 CET 2010


Try this:

# same args as lapply.  FUN must return named components.
lapplyWithRename <- function(...) {
	x <- lapply(...)
	names(x) <- sapply(x, names)
	lapply(x, function(x) { names(x) <- NULL; x })
}

# test function - if x is "A" then f returns c("Name A" = "A")
f <- function(x) structure(x, .Names = paste("Name", x))

L <- list(a="A", b="B")
lapplyWithRename(L, f)

Output looks like this:
> lapplyWithRename(L, f)
$`Name A`
[1] "A"

$`Name B`
[1] "B"


On Fri, Jan 1, 2010 at 8:21 AM, Mark Heckmann <mark.heckmann at gmx.de> wrote:
> Happy New Year, all!
>
> I want to do calculations on each element of a list l, but i want the
> returned list element to be named differently after the calculation.
> Is it possible to do the renaming somehow within the lapply call?
>
>        l <- list(a=NA, b=NA)
>        lapply(l, function(x) {names(x) <- "new name";  return(x) })
>
> This does not work, any ideas?
> TIA
>
> –––––––––––––––––––––––––––––––––––––––
> Mark Heckmann
> Dipl. Wirt.-Ing. cand. Psych.
> Vorstraße 93 B01
> 28359 Bremen
> Blog: www.markheckmann.de
> R-Blog: http://ryouready.wordpress.com
>
> ______________________________________________
> 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.
>



More information about the R-help mailing list