r - 访问 FUN 内的 lapply 索引名称

标签 r lapply names indices

有没有办法在我的 lapply() 函数中获取列表索引名称?

n = names(mylist)
lapply(mylist, function(list.elem) { cat("What is the name of this list element?\n" })

我问before是否可以在 lapply() 返回 列表中保留索引名称,但我仍然不知道是否有一种简单的方法来获取自定义函数内的每个元素名称。我想避免对名称本身调用 lapply,我宁愿在函数参数中获取名称。

最佳答案

不幸的是,lapply 只提供传递给它的向量的元素。 通常的解决方法是向其传递向量的名称或索引,而不是向量本身。

但请注意,您始终可以向函数传递额外的参数,因此以下方法有效:

x <- list(a=11,b=12,c=13) # Changed to list to address concerns in commments
lapply(seq_along(x), function(y, n, i) { paste(n[[i]], y[[i]]) }, y=x, n=names(x))

在这里,我在 x 的索引上使用 lapply,但也传入 xx 的名称>。正如您所看到的,函数参数的顺序可以是任何顺序 - lapply 会将“元素”(此处为索引)传递给第一个参数指定额外的。在本例中,我指定了 yn,因此只剩下 i...

产生以下结果:

[[1]]
[1] "a 11"

[[2]]
[1] "b 12"

[[3]]
[1] "c 13"

更新更简单的示例,相同的结果:

lapply(seq_along(x), function(i) paste(names(x)[[i]], x[[i]]))

这里函数使用“全局”变量x并提取每次调用中的名称。

关于r - 访问 FUN 内的 lapply 索引名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950144/

相关文章:

regex - 使用tidyr将字符串长度不均匀的行拆分为R中的列

r - 使用 lapply on term 文档矩阵计算词频

r - 列表中所有数据框中的R gsub列名称

r - 获取实际的 dimnames() 的函数

php - 一般 MVC 问题 - 命名、结构 (PHP)

r - 在 dplyr 和 mutate 中使用 strsplit 和 subset

r - 如何在 ggplot geom_smooth() 上使用 manipulate()

r - 如何将特定(动态)列的日期增加一年?

function - 有没有一种方法可以获取包含 R 中可以使用的所有函数名称的向量?

r - 基于最小 5 个连续值的向量序列的子集数据帧