最大值或最小值取决于另一个变量
Max or min depending on another variable
我需要根据波浪来的方向计算波高的最大值和最小值,也就是说我有两个变量:
- Hs(波高)
- 方向(涌浪方向)
而且我需要知道方向在 11.25 到 33.75 度之间的波浪的最大波高。
现在,使用函数:
Max (Hs [Direction [11.25: 33.75]))
但是我的数据与我的数据不符。
假设您的数据框名为 df
,您的变量名为 Hs
和 Direction
,您可以使用
max(df$Hs[df$Direction >= 11.25 & df$Direction <= 33.75])
获取 Direction
定义值范围内所有 Hs
值的最大值。
如果您像我一样不喜欢分别定义区间的下限和上限,则可以使用这个简洁的函数(我发现 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))])
@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))
我需要根据波浪来的方向计算波高的最大值和最小值,也就是说我有两个变量:
- Hs(波高)
- 方向(涌浪方向)
而且我需要知道方向在 11.25 到 33.75 度之间的波浪的最大波高。
现在,使用函数:
Max (Hs [Direction [11.25: 33.75]))
但是我的数据与我的数据不符。
假设您的数据框名为 df
,您的变量名为 Hs
和 Direction
,您可以使用
max(df$Hs[df$Direction >= 11.25 & df$Direction <= 33.75])
获取 Direction
定义值范围内所有 Hs
值的最大值。
如果您像我一样不喜欢分别定义区间的下限和上限,则可以使用这个简洁的函数(我发现 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))])
@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))