0
确定即时消息与时间序列数据一起工作。我正在使用dplyr按每天进行分组。然后在每一天的小组中,我希望找到滚动的最大值。我需要知道如果特定的行值是一天中的最大值,如果是,那么我想我需要打印当前的最大值,直到遇到下一个最大值。查找每个组的滚动最大值
我的程序至今低于:
day.group <- new.df %>%
dplyr::mutate(day = format(Date, "%d")) %>%
dplyr::mutate(RunID = data.table::rleid(day)) %>%
group_by(RunID) %>%
dplyr::mutate(max = runMax(Close , 1)) #Borrow run max from TTR package
#dplyr::mutate(day.high = ifelse(Close > max,1, 0))
这是关闭...但要找到滚动最大。我需要在任何给定的时间点总是找到最大值。我正在使用带有1天滚动回溯的runMax。这是没有用的......因为即使我将回头看看当天的最大行数,我会比较最后一行到第一行,然后休息= NA。
本质上,我需要将当前行与第一行中的所有前面的行进行比较......以每行为基础的最后一行。
Excel是这样的:
=MAX($F$2:F3)
所有的查找最大轧制基础上,$ F $ 2的设定第一行进行比较。这将始终打印每行的当前最大值,直到遇到新的最大值。我需要把它放在我的dplyr代码中。
虚拟数据:
Close day RunID output
114.19 1 1
114.31 1 1 114.31
114.22 1 1 114.31
114.09 1 1 114.31
114.28 1 1 114.31
114.19 1 1 114.31
114.25 1 1 114.31
114.22 1 1 114.31
114.25 1 1 114.31
114.13 1 1 114.31
114.03 1 1 114.31
114.28 1 1 114.31
114.19 1 1 114.31
114.25 1 1 114.31
114.22 1 1 114.31
114.34 1 1 114.34
114.19 1 1 114.34
114.19 1 1 114.34
114.16 1 1 114.34
114 1 1 114.34
114.06 1 1 114.34
114 1 1 114.34
114.06 1 1 114.34
114.25 1 1 114.34
114.16 1 1 114.34
114.31 1 1 114.34
114.44 1 1 114.44
114.53 1 1 114.53
114.59 1 1 114.59
114.75 1 1 114.75
114.75 1 1 114.75
114.75 1 1 114.75
114.91 1 1 114.91
114.72 2 2 114.91
114.64 2 2 114.91
114.59 2 2 114.91
114.52 2 2 114.91
期望的结果是什么样的? 'cummax'可能是你需要的,但很难说。 – alistaire
让我试试...输出附加 –