1

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

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

例如,是否有任何简单的方法可以使用该sum()函数对三个对象的第一个值执行计算?

我尝试了很多事情,例如:

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

这行代码不起作用,但它可以深入了解我正在尝试做的事情。

谢谢你的帮助。

4

2 回答 2

5

采用sapply

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

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

sum( sapply(seq(mylist), function(i) mylist[[ c(i, 1) ]]) )
于 2013-10-04T21:04:50.350 回答
2

不是很有效的解决方案:

 sum(unlist(lapply(mylist,'[',1)))
 [1] 9
于 2013-10-04T21:04:31.450 回答