我想使用mutate动态减值,但不确定如何做到这一点。下面是我想要做的事情的范例图像:

从表的第二行开始,Col C=上一个Col C元素-当前Col B元素,即5- 1= 4。类似地,Col C的第三行=(我们刚刚突变的) Col C的第二个元素- Col B的第三个元素,即4-2 = 2。因此,Col C的第n个元素=第(n-1)个Col C的第(n-1)个元素-第n个Col B元素。我已经在Col B中有值,但C值正在动态变化。因此,Col C的当前变化值取决于先前的变化值。我使用了lag命令(dplyr)来减去这些值。有没有人能帮上忙呢?
非常感谢!
发布于 2020-02-15 14:11:27
我们可以从ColB中的第二个值和ColB中的第一个值中减去累积和。这可以在base R中完成
df$ColC <- with(df, c(ColB[1], ColB[1] - cumsum(ColB[-1])))
df
# ColB ColC
#1 5 5
#2 1 4
#3 2 2
#4 3 -1
#5 4 -5或者使用dplyr
library(dplyr)
df %>% mutate(ColC = c(first(ColB),first(ColB) - cumsum(ColB[-1])))data
df <- data.frame(ColB = c(5, 1:4))https://stackoverflow.com/questions/60235006
复制相似问题