【发布时间】:2017-10-21 09:19:15
【问题描述】:
我正在努力从去年的观察中获得变量的最大值(不是每年!)并将其实施到每一行(观察)。
我认为最好的方法是使用 rollapply 函数,但我无法弄清楚宽度应该是什么样子,因为它可能因每次观察而异(每个观察代表一天,但并非所有日子都有观察)。我知道使用 list 会产生偏移值,所以这些值看起来如何?
我得到的代码:
mutate(data,"Feature"=rollapplyr(variable,list(0,"Go back one year"),max,fill=NA))
举例说明:一行的日期为 2016 年 8 月 31 日。我希望新列(使用 dplyr 包的 mutate)在这一行中显示 variable 从 31/8/2015 到 31/8/2016(这一行)的最大值。
对于那些想要更进一步的人:
当计算出的最大值 variable 高于阈值时,不显示 variable 值 - 显示 TRUE 或 FALSE(或 1 / 0)。
【问题讨论】:
-
如果您提供complete minimal reproducible example 来回答您的问题,您将更有可能得到一个好的答案。我们可以从中工作并使用它来向您展示如何回答您的问题。这也使您的问题和答案在未来对其他人更有用。