我正在尝试计算余额列 .
那么,为了展示一个例子,我想从此开始:
df <- data.frame(group = c("A", "A", "A", "A", "A"),
start = c(5, 0, 0, 0, 0),
receipt = c(1, 5, 6, 4, 6),
out = c(4, 5, 3, 2, 5))
> df
group start receipt out
1 A 5 1 4
2 A 0 5 5
3 A 0 6 3
4 A 0 4 2
5 A 0 6 5
创建一个新的 balancer 列,如下所示
> dfb
group start receipt out balance
1 A 5 1 4 2
2 A 0 5 5 2
3 A 0 6 3 5
4 A 0 4 2 7
5 A 0 6 5 8
我尝试了以下尝试,但它无法正常工作
dfc <- df %>%
group_by(group) %>%
mutate(balance = if_else(row_number() == 1, start + receipt - out, (lag(balance) + receipt) - out)) %>%
ungroup()
真的很感激一些帮助 . 谢谢!
1 回答
你可以使用
dplyr
来自dplyr
. 注意:我必须更改您的初始df
表以匹配您所需结果中的表,因为您在"out"中有不同的数据 .