在R中的列表中添加元素

时间:2013-10-24 18:55:47

标签: r list zoo

我有一个动物园元素列表。列表如下所示:

> str(a)
List of 4
  $ :‘zoo’ series from 2013-08-08 to 2013-09-09
  Data: num [1:33] 0 0 0 0 5.62 ...
  Index:  POSIXct[1:33], format: "2013-08-08" "2013-08-09" "2013-08-10" "2013-08-11" ...
 $ :‘zoo’ series from 2013-08-08 to 2013-09-09
  Data: num [1:33] 0 0 0 0 0 ...
  Index:  POSIXct[1:33], format: "2013-08-08" "2013-08-09" "2013-08-10" "2013-08-11" ...
 $ :‘zoo’ series from 2013-08-08 to 2013-09-09
  Data: num [1:33] 7.4 10.7 0 0 0 ...
  Index:  POSIXct[1:33], format: "2013-08-08" "2013-08-09" "2013-08-10" "2013-08-11" ...
 $ :‘zoo’ series from 2013-08-08 to 2013-09-09
  Data: num [1:33] 0 588 0 0 0 ...
  Index:  POSIXct[1:33], format: "2013-08-08" "2013-08-09" "2013-08-10" "2013-08-11" ...

现在,我可以通过这样做来绘制动物园元素的总和:

plot(z <- a[[1]] + a[[2]] + a[[3]] + a[[4]])

我想知道是否有一种简单的方法可以将列表中的所有元素相加。 像

这样的东西
# PYSEUDO CODE NOT WORKING!
plot(z <- foo(a))

非常感谢!

1 个答案:

答案 0 :(得分:5)

我不确定我是否完全明白,但我认为您正在寻找Reduce(),如果没有,请提供示例数据和您想要的结果。考虑这个例子:

> a <- list(rnorm(5),rnorm(5),rnorm(5),rnorm(5))
> a[[1]] + a[[2]] + a[[3]] + a[[4]]
[1]  1.06310824 -0.20176594 -2.09269676  0.01593767 -1.30949132
> Reduce("+",a)
[1]  1.06310824 -0.20176594 -2.09269676  0.01593767 -1.30949132