-2

在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
4

1 回答 1

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]]
于 2013-03-01T21:35:41.360 回答