如何在R Data Frame中对累计和列做逆运算获取单值列
R累计和列逆运算实现方案
核心逻辑是对累计和列做相邻元素差分,补充原列第一个值作为新列首元素即可得到单次累加值。
- 基础R实现
先构造示例数据框:
直接计算新列:df <- data.frame(cum_sum = c(0, 4, 9, 18, 33))df$single_val <- c(df$cum_sum[1], diff(df$cum_sum)) - dplyr框架实现
如果使用tidyverse生态的dplyr包,可通过mutate和lag函数实现:library(dplyr) df <- df %>% mutate(single_val = cum_sum - lag(cum_sum, default = 0))
两种方法输出的single_val列结果均为0、4、5、9、15,完全匹配预期。
内容的提问来源于stack exchange,提问作者Simon Hall
相关产品推荐
相关产品推荐

