[R] Find tibble row with maximum recorded value

Rich Shepard r@hep@rd @end|ng |rom @pp|-eco@y@@com
Fri Dec 3 21:55:34 CET 2021


I find solutions when the data_frame is grouped, but none when it's not.

The data:
# A tibble: 813,693 × 9
    site_nbr  year   mon   day    hr   min tz      cfs sampdt
    <chr>    <int> <int> <int> <dbl> <dbl> <chr> <dbl> <dttm>
  1 14211720  1988    10     1     0    10 PDT   16800 1988-10-01 00:10:00
  2 14211720  1988    10     1     0    20 PDT   16800 1988-10-01 00:20:00
  3 14211720  1988    10     1     0    30 PDT   17300 1988-10-01 00:30:00
  4 14211720  1988    10     1     0    40 PDT   18200 1988-10-01 00:40:00
  5 14211720  1988    10     1     0    50 PDT   18100 1988-10-01 00:50:00
  6 14211720  1988    10     1     1     0 PDT   18400 1988-10-01 01:00:00
  7 14211720  1988    10     1     1    10 PDT   18700 1988-10-01 01:10:00
  8 14211720  1988    10     1     1    20 PDT   19200 1988-10-01 01:20:00
  9 14211720  1988    10     1     1    30 PDT   19200 1988-10-01 01:30:00
10 14211720  1988    10     1     1    40 PDT   18900 1988-10-01 01:40:00
# … with 813,683 more rows

The script:
library(tidyverse)

max_pdx_disc <- pdx_disc %>%
     summarize(max_cfs = max(cfs), max_cfs_sampdt = cfs(which.max(cfs)))

The error:
> source('../scripts/filter_by_column_max.r') 
Error: Problem with `summarise()` column `max_cfs_sampdt`.
  `max_cfs_sampdt = sampt(which.max(cfs))`.
  could not find function "sampt"
> Run `rlang::last_error()` to see where the error occurred.

I looked at the the last_error and the traceback without understanding how
to filter the row with the maximum cfs value.

What do I read to learn how to return this row?

TIA,

Rich



More information about the R-help mailing list