如何在列表中获取具有相同名称的元素以避免R中的循环

时间:2015-04-25 06:12:22

标签: r list sapply

我有一个简单的问题。假设我有一个长度为500的列表Obj

logL = rep(NA, length(Obj))
for(i in 1: length(Obj)){
   logL[i] = Obj[[i]]$logL
}

我的问题是如何提取每个Obj的logL以避免像这样的for循环?

{{1}}

有没有办法用sapply或像plyr这样的高级软件包来做到这一点?我对解决方案持开放态度,因为它比for循环更快,因为我需要在MCMC中执行此操作,并且列表的长度可以是3000,因此我更喜欢快速方法。

提前致谢!

2 个答案:

答案 0 :(得分:5)

如果你只是想把它变成一个矢量,那就应该这样做。无需申请。

unlist(Obj)

答案 1 :(得分:2)

您可以为此目的使用apply组功能。这是一个教程 http://www.r-bloggers.com/using-apply-sapply-lapply-in-r/

sapply(obj, function(x) x$logL )