逐日计算变量值的进度

天鹅绒岩

这是我的数据:

ID       Day       number.of.day
ID1      Day1          5
ID1      Day1          5
ID1      Day1          5
ID1      Day1          5
ID1      Day1          5
ID1      Day2          4
ID1      Day2          4
ID1      Day2          4
ID1      Day2          4
ID1      Day3          1
ID1      Day4          1
ID2      Day1          2
ID2      Day1          2
ID2      Day2          3
ID2      Day2          3
ID2      Day2          3

更新:

我想计算的发展由日日number.of.day 每个ID,这里是预期的结果:

ID       Day       number.of.day      advance
ID1      Day1          5                NA
ID1      Day1          5                NA
ID1      Day1          5                NA
ID1      Day1          5                NA
ID1      Day1          5                NA
ID1      Day2          4                (4-5)/5
ID1      Day2          4                NA
ID1      Day2          4                NA
ID1      Day2          4                NA
ID1      Day3          1                (1-4)/4
ID1      Day4          1                (1-1)/1
ID2      Day1          2                NA
ID2      Day1          2                NA
ID2      Day2          3                (3-2)/2
ID2      Day2          3                NA
ID2      Day2          3                NA

希望得到您的答复!

大卫·阿伦堡(David Arenburg)

这是一个简单而有效的解决方案,使用 data.table

library(data.table)
setDT(df)[!duplicated(df), advance := c(NA, diff(number.of.day)/number.of.day[-.N])]
#      ID  Day number.of.day advance
#  1: ID1 Day1             5      NA
#  2: ID1 Day1             5      NA
#  3: ID1 Day1             5      NA
#  4: ID1 Day1             5      NA
#  5: ID1 Day1             5      NA
#  6: ID1 Day2             4   -0.20
#  7: ID1 Day2             4      NA
#  8: ID1 Day2             4      NA
#  9: ID1 Day2             4      NA
# 10: ID1 Day3             1   -0.75
# 11: ID1 Day4             1    0.00
# 12: ID2 Day1             2    1.00
# 13: ID2 Day1             2      NA
# 14: ID2 Day2             3    0.50
# 15: ID2 Day2             3      NA
# 16: ID2 Day2             3      NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章