代码之家  ›  专栏  ›  技术社区  ›  Monse Aleman

最大值或最小值取决于另一个变量

  •  -1
  • Monse Aleman  · 技术社区  · 8 年前

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

    • 方向(涌浪方向)

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

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

    但我不同意我的结果与数据。

    2 回复  |  直到 8 年前
        1
  •  3
  •   LAP    8 年前

    假设您的数据帧被调用 df ,您的变量被称为 Hs Direction ,您可以使用

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

    获得最大值 定义值范围内的值 .

    如果你和我一样不喜欢分别定义区间的上下限,你可以使用这个简洁的函数(我发现 here ):

    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))])
    
        2
  •  1
  •   Andrew Brēza    8 年前

    @LAP的答案绝对正确,但你也可以使用 dplyr max min .

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

    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))