gpt4 book ai didi

r - 计算变量值的逐日进步

转载 作者:行者123 更新时间:2023-12-02 08:26:51 25 4
gpt4 key购买 nike

这是我的数据:

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

更新:

我想每天计算 advancement number.of.day per 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

希望得到您的回复!

最佳答案

这是一个使用 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

关于r - 计算变量值的逐日进步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31320113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com