df <- data.frame(dat=c("11-03","12-03","13-03"),
c=c(0,15,20,4,19,21,2,10,14), d=rep(c("A","B","C"),each=3))
假设c
具有累积值。我想创建一个daily
看起来像这样的列
dat c d daily 1 11-03 0 A 0 2 12-03 15 A 15 3 13-03 20 A 5 4 11-03 4 B 4 5 12-03 19 B 15 6 13-03 21 B 2 7 11-03 2 C 2 8 12-03 10 C 8 9 13-03 14 C 4
对于的每个值d
和dat
从塔中产生的值的日变化(日期明智)c
具有累积值。
diff
按“ d”分组后可以得到“ c”的
library(dplyr)
df %>%
group_by(d) %>%
mutate(daily = c(first(c), diff(c)))
# A tibble: 9 x 4
# Groups: d [3]
# dat c d daily
# <fct> <dbl> <fct> <dbl>
#1 11-03 0 A 0
#2 12-03 15 A 15
#3 13-03 20 A 5
#4 11-03 4 B 4
#5 12-03 19 B 15
#6 13-03 21 B 2
#7 11-03 2 C 2
#8 12-03 10 C 8
#9 13-03 14 C 4
还是做“C”和之间的区别lag
“C”的
df %>%
group_by(d) %>%
mutate(daily = c - lag(c))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句