Skip to contents

Summarizes random walk data by computing statistical measures.

Usage

summarize_walks(.data, .value, .group_var)

summarise_walks(.data, .value, .group_var)

Arguments

.data

A data frame or tibble containing random walk data.

.value

A column name (unquoted) representing the value to summarize.

.group_var

A column name (unquoted) representing the grouping variable.

Value

A tibble containing the summarized statistics for each group, including mean, median, range, quantiles, variance, standard deviation, and more.

Details

This function requires that the input data frame contains a column named 'walk_number' and that the value to summarize is provided. It computes statistics such as mean, median, variance, and quantiles for the specified value variable. #' This function summarizes a data frame containing random walk data by computing various statistical measures for a specified value variable, grouped by a specified grouping variable. It checks for necessary attributes and ensures that the data frame is structured correctly.

Author

Steven P. Sanderson II, MPH

Examples

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

# Example data frame
walk_data <- random_normal_walk(.initial_value = 100)

# Summarize the walks
summarize_walks(walk_data, cum_sum, walk_number) |>
 glimpse()
#> Registered S3 method overwritten by 'quantmod':
#>   method            from
#>   as.zoo.data.frame zoo 
#> Rows: 25
#> Columns: 17
#> $ walk_number    <fct> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, …
#> $ fns            <chr> "random_normal_walk", "random_normal_walk", "random_nor…
#> $ fns_name       <chr> "Random Normal Walk", "Random Normal Walk", "Random Nor…
#> $ dimensions     <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ mean_val       <dbl> 100.10659, 99.82922, 99.52922, 98.75850, 100.85864, 100…
#> $ median         <dbl> 100.07614, 99.81004, 99.46064, 98.59080, 100.87054, 99.…
#> $ range          <dbl> 1.4702499, 0.7206181, 0.9869902, 1.9579304, 1.4119450, …
#> $ quantile_lo    <dbl> 99.47986, 99.56809, 99.17375, 98.08058, 100.38400, 99.6…
#> $ quantile_hi    <dbl> 100.79633, 100.17122, 100.01265, 99.74580, 101.37084, 1…
#> $ variance       <dbl> 0.14913626, 0.02532646, 0.07434017, 0.24369466, 0.10788…
#> $ sd             <dbl> 0.3861816, 0.1591429, 0.2726539, 0.4936544, 0.3284642, …
#> $ min_val        <dbl> 99.43543, 99.49121, 99.05844, 98.04468, 100.10611, 99.6…
#> $ max_val        <dbl> 100.90568, 100.21183, 100.04543, 100.00261, 101.51805, …
#> $ harmonic_mean  <dbl> 100.10512, 99.82897, 99.52849, 98.75607, 100.85759, 100…
#> $ geometric_mean <dbl> 100.10585, 99.82910, 99.52885, 98.75728, 100.85812, 100…
#> $ skewness       <dbl> 0.18662786, 0.34427100, 0.42980993, 0.41718949, -0.0445…
#> $ kurtosis       <dbl> -0.9483369, -0.1798819, -1.1319872, -0.8449953, -0.9673…
summarize_walks(walk_data, y) |>
  glimpse()
#> Warning: There was 1 warning in `dplyr::summarize()`.
#>  In argument: `geometric_mean = exp(mean(log(y)))`.
#> Caused by warning in `log()`:
#> ! NaNs produced
#> Rows: 1
#> Columns: 16
#> $ fns            <chr> "random_normal_walk"
#> $ fns_name       <chr> "Random Normal Walk"
#> $ dimensions     <dbl> 1
#> $ mean_val       <dbl> -0.002189823
#> $ median         <dbl> -0.005327023
#> $ range          <dbl> 0.6899619
#> $ quantile_lo    <dbl> -0.1991602
#> $ quantile_hi    <dbl> 0.1989294
#> $ variance       <dbl> 0.01035473
#> $ sd             <dbl> 0.1017582
#> $ min_val        <dbl> -0.3047861
#> $ max_val        <dbl> 0.3851758
#> $ harmonic_mean  <dbl> -0.01258915
#> $ geometric_mean <dbl> NaN
#> $ skewness       <dbl> 0.1464476
#> $ kurtosis       <dbl> 0.09097494

# Example with missing value variable
# summarize_walks(walk_data, NULL, group) # This will trigger an error.