我正在将一个函数应用于列表的元素。如何在列表中循环并访问名称和属性?
列表有names
,所以从某种意义上说,每个元素都有自己的名字,但是如果lapply
函数已经从列表中提取/分离元素,我该如何访问它?
一些虚构的数据(如内部功能我在这里滥用dput
):
r <- list(a=structure(1:4, unit="test"), b='abc')
lapply(r, dput)
我看到这里是dput
接收列表中的对象,就好像与[[
访问,剥夺了名的,他们在包含列表中。
所以我想我会放弃使用apply
家族的函数并写一个循环的想法,但我并不特别喜欢这个想法,它迫使我构造完整函数的结果。
result <- list()
for (name in names(r)) {
print(name)
result[[name]] <- dput(r[[name]])
}
result
任何有洞察力的想法?
是通过数字索引更快访问比按名称访问? – mariotomo
好的,它比循环更具可读性,避免了额外的'result'变量的需要。所以我按照你的提示,谢谢!这里只有变化是我更喜欢'lapply(名字(r),函数(名字)dput(r [[名字])))''。我等待接受答案,看看是否有更多想法出现。 – mariotomo
只**很**。我已经用一些'rbenchmark'结果编辑了我的答案 – Andrie