# extract

From rstan v2.15.1
by Ben Goodrich

##### Extract samples from a fitted Stan model

Extract samples from a fitted model represented by an
instance of class `.`

- Keywords
- methods

##### Usage

```
# S4 method for stanfit
extract(object, pars, permuted = TRUE, inc_warmup = FALSE,
include = TRUE)
```

##### Arguments

- object
- An object of class
`.`

- pars
- An optional character vector providing the parameter
names (or other quantity names) of interest. If not specified,
all parameters and other quantities are used. The log-posterior with
name
`lp__`

is also included by default. - permuted
- A logical scalar indicating whether the draws
after the
*warmup*period in each chain should be*permuted*and*merged*. If`FALSE`

, the original order is kept. For each`stanfit`

object, the permutation is fixed (i.e., extracting samples a second time will give the same sequence of iterations). - inc_warmup
- A logical scalar indicating whether to include
the warmup draws. This argument is only relevant if
`permuted`

is`FALSE`

. - include
- A logical scalar indicating whether the parameters
named in
`pars`

should be included (`TRUE`

) or excluded (`FALSE`

).

##### Value

When `permuted = TRUE`

, this function returns a named list,
every element of which is an array representing samples for a parameter
with all chains merged together. When `permuted = FALSE`

, an array is returned; the first
dimension is for the iterations, the second for the number of chains, the
third for the parameters. Vectors and arrays are expanded to one
parameter (a scalar) per cell, with names indicating the third dimension.
See the examples (with comments) below. The `monitor`

function
can be applied to the returned array to obtain a summary
(similar to the `print`

method for ` objects).`

##### Methods

##### See Also

S4 class `, `

`as.array.stanfit`

, and
`monitor`

##### Examples

```
# Create a stanfit object from reading CSV files of samples (saved in rstan
# package) generated by funtion stan for demonstration purpose from model as follows.
#
excode <- '
transformed data {
real y[20];
y[1] <- 0.5796; y[2] <- 0.2276; y[3] <- -0.2959;
y[4] <- -0.3742; y[5] <- 0.3885; y[6] <- -2.1585;
y[7] <- 0.7111; y[8] <- 1.4424; y[9] <- 2.5430;
y[10] <- 0.3746; y[11] <- 0.4773; y[12] <- 0.1803;
y[13] <- 0.5215; y[14] <- -1.6044; y[15] <- -0.6703;
y[16] <- 0.9459; y[17] <- -0.382; y[18] <- 0.7619;
y[19] <- 0.1006; y[20] <- -1.7461;
}
parameters {
real mu;
real<lower=0, upper=10> sigma;
vector[2] z[3];
real<lower=0> alpha;
}
model {
y ~ normal(mu, sigma);
for (i in 1:3)
z[i] ~ normal(0, 1);
alpha ~ exponential(2);
}
'
# exfit <- stan(model_code = excode, save_dso = FALSE, iter = 200,
# sample_file = "rstan_doc_ex.csv")
#
exfit <- read_stan_csv(dir(system.file('misc', package = 'rstan'),
pattern='rstan_doc_ex_[[:digit:]].csv',
full.names = TRUE))
ee1 <- extract(exfit, permuted = TRUE)
print(names(ee1))
for (name in names(ee1)) {
cat(name, "\n")
print(dim(ee1[[name]]))
}
ee2 <- extract(exfit, permuted = FALSE)
print(dim(ee2))
print(dimnames(ee2))
```

*Documentation reproduced from package rstan, version 2.15.1, License: GPL (>= 3)*

### Community examples

Looks like there are no examples yet.