首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态突变dplyr

动态突变dplyr
EN

Stack Overflow用户
提问于 2020-02-15 08:29:29
回答 1查看 53关注 0票数 0

我想使用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)来减去这些值。有没有人能帮上忙呢?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-02-15 14:11:27

我们可以从ColB中的第二个值和ColB中的第一个值中减去累积和。这可以在base R中完成

代码语言:javascript
复制
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

代码语言:javascript
复制
library(dplyr)
df %>% mutate(ColC = c(first(ColB),first(ColB) - cumsum(ColB[-1])))

data

代码语言:javascript
复制
df <- data.frame(ColB = c(5, 1:4))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60235006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档