Skip to contents

Creates a set of regressors, one for each level of a factor. Each condition shares the same HRF and other parameters but has distinct onsets, durations and amplitudes.

Usage

regressor_set(
  onsets,
  fac,
  hrf = HRF_SPMG1,
  duration = 0,
  amplitude = 1,
  span = 40,
  summate = TRUE
)

# S3 method for class 'RegSet'
evaluate(
  x,
  grid,
  precision = 0.33,
  method = c("conv", "loop", "fft", "Rconv"),
  sparse = FALSE,
  ...
)

Arguments

onsets

Numeric vector of event onset times.

fac

A factor (or object coercible to a factor) indicating the condition for each onset.

hrf

Hemodynamic response function used for all conditions.

duration

Numeric scalar or vector of event durations.

amplitude

Numeric scalar or vector of event amplitudes.

span

Numeric scalar giving the HRF span in seconds.

summate

Logical; passed to [regressor()].

x

A RegSet object

grid

Numeric vector of time points at which to evaluate

precision

Numeric precision for evaluation

method

Evaluation method

sparse

Logical whether to return sparse matrix

...

Additional arguments passed to evaluate

Value

`regressor_set()` returns an object of class `RegSet` containing one `Reg` per factor level. `evaluate()` returns a matrix (or sparse matrix) with one row per element of `grid` and one column per factor level and basis function, in the order of the levels. Columns are named after the levels, or `<level>_basis<k>` when the HRF has more than one basis function.

Examples

# Create events for 3 conditions
onsets <- c(10, 20, 30, 40, 50, 60)
conditions <- factor(c("A", "B", "C", "A", "B", "C"))

# Create regressor set
rset <- regressor_set(onsets, conditions, hrf = HRF_SPMG1)

# With durations and amplitudes
rset2 <- regressor_set(
  onsets = onsets,
  fac = conditions,
  duration = 2,
  amplitude = c(1, 1.5, 0.8, 1, 1.5, 0.8),
  hrf = HRF_SPMG1
)

# Evaluate the regressor set
times <- seq(0, 80, by = 0.1)
design_matrix <- evaluate(rset, times)