【发布时间】:2018-07-22 13:42:58
【问题描述】:
我正在寻找类似于diff 的函数,但不是计算两个连续值之间的差异,而是计算它们之间的最小值。也就是说,如果你有 x <- c(7,3,17,9) 我想要的是 c(3,3,9) 作为输出。
是否有实现此功能的功能(不仅适用于最小功能,还适用于最大功能或其他功能?
解释:
第一个值 (3) 是前两个元素 min(c(7,3)) 之间的最小值
第二个值 (3) 是第二个和第三个元素之间的最小值
min(c(3,17))
第三个值 (9) 是第三个和第四个元素之间的最小值min(c(17,9))
【问题讨论】:
-
我不明白你是怎么得到
c(1, 1, 9)的。也许再解释一下。 -
您可以从 zoo 包中查看
rollmax、rollmean。但这些通常用于时间序列数据。此外,您可以查看 fMultivar 包。 -
谢谢@TUSH,解决方案是
rollapply(c(7,3,17,9),2,min)。rollapply()function 正是我想要的。