【发布时间】:2016-07-13 10:25:07
【问题描述】:
我一直在寻找这个问题的答案,但运气不佳,所以祈祷有人可以帮助我!
我正在处理周期性数据,我试图找到两个峰值和两个谷值的关联值 - 这不一定等于最大/最小值和第二个最大/最小值,而是最大/最小值和然后第二个最大值/最小值的条件是该值大于/小于前面和后面的值。
这是一个循环的例子
x <- c(3.049, 3.492, 3.503, 3.429, 3.013, 2.881, 2.29, 1.785, 1.211, 0.890, 0.859, 0.903, 1.165, 1.634, 2.073, 2.477, 3.162, 3.207, 3.177, 2.742, 2.24, 1.827, 1.358, 1.111, 1.063, 1.098, 1.287, 1.596, 2.169, 2.292)
我有 1000 个循环,所以我在 dplyr 中使用 group_by 对循环进行分组,然后希望在组内应用条件最大/最小参数。
如果有任何建议,我将不胜感激,
提前致谢
编辑
我已经使用了下面的函数,只是在最后一行稍作修改
return(data.frame(Data.value=x, Time=y, Date=z,HHT=peak, LLT=trough))
其中 x 是我上面的原始 x,y 是时间变量,z 是日期变量。这使我可以对结果进行一些额外的计算(我需要值最小/最大值的时间以及值本身)。
所以现在我有一个包含我需要的所有东西的数据框,但它只适用于一个日期 - 我仍然无法使用 group_by 函数在整个数据集中运行它。我已经尝试使用按日期进行子设置
subsets<-split(data, data$datevar, drop=TRUE)
但仍然需要一种方法来为每个子集运行 findminmax 函数(以及我的几行额外代码)。有什么想法吗?
【问题讨论】:
标签: r group-by max dplyr minimum