如果在 2 行中满足某些条件,如何在 R 数据框中添加新列,显示当前行和前一行中的值的总和?

互联网 行业动态 更新时间:2024-06-13 00:19:06

akr*_*run 5

由于我们对相邻值相等感兴趣,因此使用rleid(from data.table) 创建分组索引,然后通过添加 'b' 和 'b' 来创建 'c'并将( )lag的默认第一个值替换为0lagNA

library(dplyr)
library(data.table)
library(tidyr)
df %>% 
   group_by(grp = rleid(a)) %>% 
   mutate(c = replace_na(b + lag(b), 0)) %>%
   ungroup %>%
   select(-grp)

-输出

# A tibble: 6 × 3
      a     b     c
  <dbl> <dbl> <dbl>
1     0     1     0
2     1     2     0
3     2     3     0
4     2     4     7
5     2     5     9
6     3     6     0

或者使用base R- 类似的方法是rle创建“grp”,然后使用ave当前值添加先前的值(通过删除第一个和最后一个),然后在开头附加 0

grp <- with(rle(df$a), rep(seq_along(values), lengths))
df$c <- with(df, ave(b, grp, FUN = function(x) c(0, x[-1] + x[-length(x)])))

更多推荐

总和,框中,条件,数据,如何在

本文发布于:2023-04-20 20:44:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/8e7fa66aaa9fc20df78c446326576130.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:总和   框中   条件   数据   如何在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!