r语言 - 最大值或最小值,具体取决于另一个变量



我需要根据波高的方向计算波高的最大值和最小值,也就是说,我有两个变量:

  • Hs (波高(
  • 方向(膨胀的方向(

我需要知道方向在 11.25 到 33.75 度之间的波的最高。

现在,使用以下函数:

Max (Hs [Direction [11.25: 33.75]))

但我不同意我拥有的数据的结果。

假设你的数据帧叫df,你的变量叫HsDirection,你可以使用

max(df$Hs[df$Direction >= 11.25 & df$Direction <= 33.75])

获取定义值范围内所有Hs值的最大值Direction

如果你和我一样,不喜欢分别定义区间的下限和上限的必要性,你可以使用这个简洁的函数(我在这里找到(:

in_interval <- function(x, interval){
stopifnot(length(interval) == 2L)
interval[1] < x & x < interval[2]
}

然后使用

max(df$Hs[in_interval(df$Direction, c(11.25, 33.75))])

@LAP的答案是绝对正确的,但您也可以使用dplyr包来获取maxmin

首先,让我们创建一些示例数据。

df <- data.frame(Hs = rnorm(327), Direction = runif(327, 0, 364))

现在让我们计算一下。

library(dplyr)
df %>%
filter(Direction >= 11.25 & Direction <= 33.75) %>% 
summarise(max(Hs), min(Hs))

最新更新