首页 > 解决方案 > 获取值位置的函数

问题描述

从这些数据中,我想要一个新列(“来自”),其中包含每行累积值的第一个值。它实际上应该是列“cum”+ 1 中的最后一个值。你将如何使用函数来执行此操作?想象很多行。

     a <- c(5,5,4,3)
cum <- cumsum(a)
df <- data.frame(a,cum)
df
  a cum 
  5   5  
  5  10  
  4  14 
  3  17  

df$from <- c(1,6,11,15)
 df
  a cum from
  5   5    1
  5  10    6
  4  14   11
  3  17   15

标签: r

解决方案


library(tidyverse) 
a <- c(5,5,4,3)
cum <- cumsum(a)
df <- data.frame(a,cum)

df %>% 
  mutate(from = lag(cum, default = 0) + 1)
#>   a cum from
#> 1 5   5    1
#> 2 5  10    6
#> 3 4  14   11
#> 4 3  17   15

reprex 包于 2021-03-01 创建(v1.0.0)


推荐阅读