我有一个包含3个向量的列表。
mylist <- list( a = c(1,2),
b = c(3,4),
c = c(5,6) )
有没有简单的方法,例如,使用sum()
函数对三个对象的第一个值进行计算?
我尝试过很多东西:
sum(mylist[c(a, b, c)][1])
这行代码不起作用,但它可以让我深入了解我想要做的事情。
感谢您的帮助。
答案 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