抱歉问了基本问题。我正在使用 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
谢谢