我必须创建一个部分数据集,其中仅包含每年最高日平均气温值的 20 天。我的数据集如下所示:
日期 | 意思是 |
---|---|
1997-07-15 | 27.05292 |
1997-07-17 | 26.86542 |
1997-06-21 | 26.10958 |
1997-07-16 | 26.05833 |
1997-07-14 | 26.02500 |
1997-06-25 | 25.80125 |
1997-07-18 | 25.36208 |
1997-06-22 | 25.18875 |
1997-06-29 | 24.72333 |
1997-06-30 | 24.71000 |
...
我尝试使用下面的代码,但这个代码仅过滤每年的最大值并创建一个包含 20 行的数据框 - 但我需要每年(1997 - 2010)的前 20 个平均值。顺便说一句,我使用 data.frame 类。如果有人能帮助我,我将非常感激,我只是不明白!
top_20_per_year <- daily_mean_temp_sorted %>%
slice_max(mean, n = 20) %>%
mean
取前 2 个
year
值的示例:library(tidyverse)
df <- tribble(
~date, ~mean,
"1997-07-15", 27.05292,
"1997-07-17", 26.86542,
"1997-06-21", 26.10958,
"1997-07-16", 26.05833,
"1997-07-14", 26.02500,
"1998-06-25", 25.80125,
"1998-07-18", 25.36208,
"1998-06-22", 25.18875,
"1998-06-29", 24.72333,
"1998-06-30", 24.71000
)
df |>
mutate(date = ymd(date), year = year(date)) |>
slice_max(n = 2, order_by = mean, by = year)
#> # A tibble: 4 × 3
#> date mean year
#> <date> <dbl> <dbl>
#> 1 1997-07-15 27.1 1997
#> 2 1997-07-17 26.9 1997
#> 3 1998-06-25 25.8 1998
#> 4 1998-07-18 25.4 1998
创建于 2024-04-29,使用