首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

累积差R
EN

Stack Overflow用户
提问于 2022-09-08 08:54:43
回答 2查看 104关注 0票数 4

R中cumsum()的反面是什么?

代码语言:javascript
运行
复制
a = c(2, 5, 8)
cumsum = c(2, 7, 15)
cumdiff = c(2, 3, 1)

因为5-2 =3和8-7 = 1。

在R中有一个软件包可以用于这个包吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-08 09:31:21

base R

代码语言:javascript
运行
复制
cumdiff <- function(x) x - head(c(0, cumsum(x)), -1)
#cumdiff <- function(x) x - c(0, cumsum(x))[-(length(x) + 1)]

dplyr中,有lagdefault = 0

代码语言:javascript
运行
复制
library(dplyr)
cumdiff <- function(x) x - lag(cumsum(x), default = 0)

结果:

代码语言:javascript
运行
复制
a = c(2,5,8)
cumdiff(a)
#[1] 2 3 1
票数 4
EN

Stack Overflow用户

发布于 2022-09-08 09:52:44

代码语言:javascript
运行
复制
library(dplyr)
data.frame(a)  %>% 
  mutate(
         cumdiff = a - lag(cumsum(a)),
         cumdiff = ifelse(is.na(cumdiff), a, cumdiff)
         )
  a cumdiff
1 2       2
2 5       3
3 8       1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73646256

复制
相关文章

相似问题

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