使用lapply中迭代的对象的名称

时间:2014-04-25 15:45:52

标签: r lapply

我想访问作为lapply输入的列表中对象元素的名称。以下是所需行为的人为设想示例,其中我只是粘贴对象的名称及其内容:

x <- list(a=1,b=2)
lapply(x, FUN) 
$a
[1] "a1"

$b
[1] "a2"

始终可以在列表名称上使用lapply(),然后在函数体中使用x[[name_element]],但我相信它会使代码不那么清晰。

2 个答案:

答案 0 :(得分:0)

列表上的

mapply和列表名称:

x <- list(a = 1, b = 2)
y <- mapply(paste0, names(x), c(x), SIMPLIFY = FALSE)

y
$a
[1] "a1"

$b
[1] "b2"

答案 1 :(得分:0)

不是100%你的一般问题是什么,但这是玩具问题的另一种解决方案。

fun <- function(x) {
  lapply(x, function(elem) paste0(names(x)[[elem]], x[[elem]]))
}

fun(x)
$a
[1] "a1"

$b
[1] "b2"