0

抱歉问了基本问题。我正在使用 ff 包并用于read.csv.ffdf导入数据。我在 excel 中有超过 5000 万行,我想对其中一列进行累积求和,并在找到 0 时将其重置。我有下面的代码来生成累积序列,但不知道如何访问当前行.

idx <- ffdforder(i[c("a","c","b")])
ordered_i <- i[idx, ]
ordered_i$key_a_c_d <- ikey(ordered_i[c("a", "c","d")])

cumsum_i <- ffdfdply(ordered_i, split=as.character(ordered_i$key_a_c_d), FUN= function(x) {
    x <- as.data.table(x)
if(x[**current row**, d]==0)
{
    result <- x[,cumsum_a_c_d :=0]
}
else
{
    result <- x[, cumsum_a_c_d := cumsum(d), by = list(key_a_c_d)]
}
    as.data.frame(result)
}, trace=T)

我正在使用该data.table软件包来完成累积总和。如何访问数据表中的当前行,以便将其与 0 进行比较并重置 cumsum。我需要如下所示的预期输出。它是d列的累积和。

a   b   c   d   Result
1   1   1   1   1
1   4   1   0   0
1   6   1   1   1
1   2   1   1   2
1   5   1   0   0
1   3   1   1   1

谢谢

4

0 回答 0