R/combine_chains.R
combine_chains.Rd
Combines the chain and iteration columns of a tidy data frame of draws from a Bayesian model fit into a new column
that can uniquely identify each draw. Generally speaking not needed for pure tidybayes code, as tidybayes
functions now automatically include a .draw
column, but can be useful when interacting with packages that
do not provide such a column.
combine_chains(data, chain = .chain, iteration = .iteration, into = ".draw")
Tidy data frame of draws with columns representing the chain and iteration of each draw.
Bare name of column in data
indicating the chain of each row. The default (.chain
) is
the same as used by other functions in tidybayes
.
Bare name of column in data
indicating the iteration of each row. The default
(.iteration
) is the same as used by other functions in tidybayes
.
Name (as a character vector) of the column to combine chains into. The default, NULL
, replaces the
chain
column with NA
s and writes the combined chain iteration numbers into iteration
. If
provided, chain
and iteration
will not be modified, and the combined iteration number will be written
into a new column named into
.
A data frame of tidy draws with a combined iteration column
library(magrittr)
library(coda)
data(line, package = "coda")
# The `line` posterior has two chains with 200 iterations each:
line %>%
tidy_draws() %>%
summary()
#> .chain .iteration .draw alpha
#> Min. :1.0 Min. : 1.00 Min. : 1.0 Min. :0.858
#> 1st Qu.:1.0 1st Qu.: 50.75 1st Qu.:100.8 1st Qu.:2.732
#> Median :1.5 Median :100.50 Median :200.5 Median :3.019
#> Mean :1.5 Mean :100.50 Mean :200.5 Mean :2.988
#> 3rd Qu.:2.0 3rd Qu.:150.25 3rd Qu.:300.2 3rd Qu.:3.242
#> Max. :2.0 Max. :200.00 Max. :400.0 Max. :7.173
#> beta sigma
#> Min. :-1.5662 Min. : 0.3262
#> 1st Qu.: 0.6039 1st Qu.: 0.6158
#> Median : 0.7963 Median : 0.7912
#> Mean : 0.7992 Mean : 0.9681
#> 3rd Qu.: 0.9925 3rd Qu.: 1.0752
#> Max. : 1.8320 Max. :11.2331
# combine_chains combines the chain and iteration column into the .draw column.
line %>%
tidy_draws() %>%
combine_chains() %>%
summary()
#> .chain .iteration .draw alpha
#> Min. :1.0 Min. : 1.00 Min. : 1.0 Min. :0.858
#> 1st Qu.:1.0 1st Qu.: 50.75 1st Qu.:100.8 1st Qu.:2.732
#> Median :1.5 Median :100.50 Median :200.5 Median :3.019
#> Mean :1.5 Mean :100.50 Mean :200.5 Mean :2.988
#> 3rd Qu.:2.0 3rd Qu.:150.25 3rd Qu.:300.2 3rd Qu.:3.242
#> Max. :2.0 Max. :200.00 Max. :400.0 Max. :7.173
#> beta sigma
#> Min. :-1.5662 Min. : 0.3262
#> 1st Qu.: 0.6039 1st Qu.: 0.6158
#> Median : 0.7963 Median : 0.7912
#> Mean : 0.7992 Mean : 0.9681
#> 3rd Qu.: 0.9925 3rd Qu.: 1.0752
#> Max. : 1.8320 Max. :11.2331