gpt4 book ai didi

r - 在 lapply 函数中访问和保留列表名称

转载 作者:行者123 更新时间:2023-12-03 05:56:06 25 4
gpt4 key购买 nike

我需要访问 lapply 函数内的列表名称。我在网上找到了一些线程,据说我应该迭代列表的名称,以便能够获取函数中的每个列表元素名称:

> n = names(mylist)
> mynewlist = lapply(n, function(nameindex, mylist) { return(mylist[[nameindex]]) }, mylist)
> names(mynewlist)
NULL
> names(mynewlist) = n

问题是 mynewlist 丢失了原始的 mylist 索引,我必须添加姓氏()赋值来恢复它们。

有没有办法为 lapply 函数返回的每个元素提供显式索引名称?或者使用不同的方法来确保 mynewlist 元素设置了正确的索引名称?我觉得如果 lapply 没有以与 mylist 相同的顺序返回列表元素,mynewlist 索引名称可能是错误的。

最佳答案

我相信 lapply 默认情况下会保留您正在迭代的任何内容的名称属性。当您将 myList 的名称存储在 n 中时,该向量不再具有任何“名称”。因此,如果您将其添加回via,

names(n) <- names(myList)

并像以前一样使用lapply,您应该会得到所需的结果。

编辑

今天早上我的大脑有点模糊。这是另一个也许更方便的选项:

sapply(n,FUN = ...,simplify = FALSE,USE.NAMES = TRUE)

我正在摸索,很困惑 lapply 没有 USE.NAMES 参数,然后我实际上查看了 sapply 的代码code> 并意识到我很傻,这可能是更好的方法。

关于r - 在 lapply 函数中访问和保留列表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com