我需要访问 lapply 函数内的列表名称。我在网上找到了一些线程,据说我应该迭代列表的名称,以便能够获取函数中的每个列表元素名称:
> n = names(mylist)
> mynewlist = lapply(n, function(nameindex, mylist) { return(mylist[[nameindex]]) }, mylist)
> names(mynewlist)
NULL
> names(mynewlist) = n
问题是 mynewlist 丢失了原始的 mylist 索引,我必须添加 Last Names() 赋值来恢复它们。
有没有办法为 lapply 函数返回的每个元素提供显式索引名称?或者使用不同的方法来确保 mynewlist 元素设置了正确的索引名称?我觉得如果 lapply 没有以与 mylist 相同的顺序返回列表元素,那么 mynewlist 索引名称可能是错误的。
我相信lapply
默认情况下,保留您正在迭代的任何内容的名称属性。当您存储名称时myList
in n
,该向量不再有任何“名称”。所以如果你把它添加回via,
names(n) <- names(myList)
和使用lapply
和以前一样,你应该得到想要的结果。
Edit
今天早上我的脑子有点昏昏沉沉的。这是另一个也许更方便的选项:
sapply(n,FUN = ...,simplify = FALSE,USE.NAMES = TRUE)
我正在摸索,很困惑lapply
没有USE.NAMES
争论,然后我实际上查看了代码sapply
并意识到我很愚蠢,这可能是一个更好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)