Add weights to `draws`

objects, with one weight per draw, for use in
subsequent weighting operations. For reasons of numerical accuracy, weights
are stored in the form of unnormalized log-weights (in a variable called
`.log_weight`

). See `weights.draws()`

for details how to extract weights from
`draws`

objects.

```
weight_draws(x, weights, ...)
# S3 method for draws_matrix
weight_draws(x, weights, log = FALSE, ...)
# S3 method for draws_array
weight_draws(x, weights, log = FALSE, ...)
# S3 method for draws_df
weight_draws(x, weights, log = FALSE, ...)
# S3 method for draws_list
weight_draws(x, weights, log = FALSE, ...)
# S3 method for draws_rvars
weight_draws(x, weights, log = FALSE, ...)
```

- x
(draws) A

`draws`

object or another R object for which the method is defined.- weights
(numeric vector) A vector of weights of length

`ndraws(x)`

. Weights will be internally stored on the log scale (in a variable called`.log_weight`

) and will not be normalized, but normalized (non-log) weights can be returned via the`weights.draws()`

method later.- ...
Arguments passed to individual methods (if applicable).

- log
(logicla) Are the weights passed already on the log scale? The default is

`FALSE`

, that is, expecting`weights`

to be on the standard (non-log) scale.

A `draws`

object of the same class as `x`

.

```
x <- example_draws()
# sample some random weights for illustration
wts <- rexp(ndraws(x))
head(wts)
#> [1] 0.12537521 0.51153003 0.43158989 0.01586271 1.98827365 1.42360646
# add weights
x <- weight_draws(x, weights = wts)
# extract weights
head(weights(x)) # defaults to normalized weights
#> [1] 2.943483e-04 1.200939e-03 1.013260e-03 3.724149e-05 4.667947e-03
#> [6] 3.342256e-03
head(weights(x, normalize=FALSE)) # recover original weights
#> [1] 0.12537521 0.51153003 0.43158989 0.01586271 1.98827365 1.42360646
head(weights(x, log=TRUE)) # get normalized log-weights
#> [1] -8.130747 -6.724652 -6.894582 -10.198087 -5.367036 -5.701109
# add weights which are already on the log scale
log_wts <- log(wts)
head(log_wts)
#> [1] -2.0764444 -0.6703490 -0.8402795 -4.1437844 0.6872667 0.3531934
x <- weight_draws(x, weights = log_wts, log = TRUE)
# extract weights
head(weights(x))
#> [1] 2.943483e-04 1.200939e-03 1.013260e-03 3.724149e-05 4.667947e-03
#> [6] 3.342256e-03
head(weights(x, log=TRUE, normalize = FALSE)) # recover original log_wts
#> [1] -2.0764444 -0.6703490 -0.8402795 -4.1437844 0.6872667 0.3531934
```