在R中添加整数而不是列表元素

时间:2013-03-01 21:31:04

标签: r

在R

中添加整数而不是列表元素

我正在

> total = 0
> for (qty in a[5]){
+ total = total + as.numeric(unlist(qty))
+ print(total)
+ }
 [1] 400 400 400 400 400 400 400 400 400 400

我真正想要的是:

> total = 0
> for (qty in a[5]){
+ total = total + as.numeric(unlist(qty))
+ print(total)
+ }
 [1] 400 800 1200 1600 2000 2400 2800 3200 3600 4000

精炼:对更具体的场景更多一点,

price buy_sell  qty
100        B  100
100        B  200
90        S  300
100        S  400

我想制作第四栏

price buy_sell  qty net
100        B  100   10000
100        B  200   30000
90        S  300    3000
100        S  400   -37000

1 个答案:

答案 0 :(得分:2)

请注意,如果a是列表,则您需要使用双括号。否则,您将返回一个大小为1的列表,其中第一个元素具有您要查找的值

尝试:

 total <- cumsum(a[[5]])

<小时/>

a <- list()
a[[5]] <- rep(400, 10)

cumsum(a[[5]])
#  [1]  400  800 1200 1600 2000 2400 2800 3200 3600 4000

比较:

 a[5]
 a[[5]]
 a[5][[1]]