使用列表中的值

时间:2013-10-04 20:52:58

标签: r

我有一个包含3个向量的列表。

mylist <- list( a = c(1,2),
                b = c(3,4),
                c = c(5,6) )

有没有简单的方法,例如,使用sum()函数对三个对象的第一个值进行计算?

我尝试过很多东西:

sum(mylist[c(a, b, c)][1])

这行代码不起作用,但它可以让我深入了解我想要做的事情。

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

使用sapply

> sum(sapply(mylist, "[", 1))
[1] 9

额外有趣的事实:您可以在c( )内使用[[ ]]

sum( sapply(seq(mylist), function(i) mylist[[ c(i, 1) ]]) )

答案 1 :(得分:2)

效率不高的解决方案:

 sum(unlist(lapply(mylist,'[',1)))
 [1] 9