Learn R Programming

hydrotoolbox (version 1.1.2)

hm_mutate: Create, modify and delete columns inside a slot

Description

This method allows you to modify whatever (except 'date' column) you want inside a slot data frame. Since this package was designed with the aim of providing useful objects to store and track changes in hydro-meteorological series, is not recommend to delete or change the original data, but it is upon to you.

Usage

hm_mutate(obj, slot_name, FUN, ...)

# S4 method for hydromet_station hm_mutate(obj, slot_name, FUN, ...)

# S4 method for hydromet_compact hm_mutate(obj, slot_name, FUN, ...)

Value

The same object but with the modified slot's data frame

Arguments

obj

a valid hydromet_XXX class object.

slot_name

string with the a valid name.

FUN

function name. The function output must be a data frame with the first column being the Date. Note that hydrotoolbox provides common used hydrological functions: see for example mov_avg. An interesting function to use is mutate from dplyr package.

...

FUN arguments to pass.

Functions

  • hm_mutate(hydromet_station): method for station class.

  • hm_mutate(hydromet_compact): method for compact class.

Examples

Run this code
if (FALSE) {
# path to all example files
path <- system.file('extdata', package = 'hydrotoolbox')

# build the snih station file
guido <-
hm_create() %>%
  hm_build(bureau = 'snih', path = path,
           file_name = c('snih_hq_guido.xlsx',
           'snih_qd_guido.xlsx'),
           slot_name = c('hq', 'qd'),
           by = c('none', 'day') ) %>%
  hm_name(slot_name = 'qd',
          col_name = 'q(m3/s)')

 # apply a moving average windows to streamflow records
hm_mutate(obj = guido, slot_name = 'qd',
          FUN = mov_avg, k = 10,
          pos = 'c', out_name = 'mov_avg') %>%
 hm_plot(slot_name = 'qd',
         col_name = list(c('q(m3/s)', 'mov_avg') ),
         interactive = TRUE,
         line_color = c('dodgerblue', 'red3'),
         y_lab = 'Q(m3/s)',
         legend_lab = c('original', 'mov_avg')  )
}


Run the code above in your browser using DataLab