Constructs a new multivariate design object linking vector-valued observations with design variables. A multidesign object maintains the relationship between experimental data (observations) and metadata about experimental conditions (design variables).
Creates a multidesign object that combines experimental data (as a matrix) with design information (as a data frame) and optional column metadata. This structure is particularly useful for experimental designs where observations have multiple associated factors and variables may have metadata.
Usage
multidesign(x, y, ...)
# S3 method for class 'matrix'
multidesign(x, y, column_design = NULL, ...)Arguments
- x
A numeric matrix where rows are observations and columns are variables
- y
A data frame containing design variables for each observation (must have same number of rows as x)
- ...
Additional arguments passed to methods, such as column_design
- column_design
Optional data frame containing metadata for columns in x (must have same number of rows as ncol(x))
Value
A multidesign object with components:
- x
The input data matrix
- design
A tibble containing design variables
- column_design
A tibble containing column metadata (if provided)
A multidesign object with components:
- x
The input data matrix
- design
A tibble containing design variables with an added .index column
- column_design
A tibble containing column metadata (empty if not provided)
Details
A multidesign object consists of three main components: * A data matrix where rows represent observations and columns represent variables * A design data frame containing experimental factors and conditions for each observation * Optional column metadata describing properties of each variable
A multidesign object consists of three main components: * A data matrix where rows represent observations and columns represent variables * A design data frame containing experimental factors and conditions for each observation * Optional column metadata describing properties of each variable
The object maintains the relationship between these components while providing methods for manipulation, subsetting, and analysis.
See also
reduce.multidesign for dimensionality reduction,
split.multidesign for splitting by design variables,
multiframe for an alternative implementation
reduce.multidesign for dimensionality reduction,
split.multidesign for splitting by design variables
Other multidesign functions:
reduce.multidesign(),
split.multidesign(),
split_indices.multidesign(),
subset.multidesign(),
summarize_by.multidesign()
Examples
# Create example data matrix
X <- matrix(rnorm(20*100), 20, 100)
# Create design information
Y <- tibble::tibble(condition=rep(letters[1:5], 4))
# Create multidesign object
mds <- multidesign(X, Y)
# Split by condition
sdes <- split(mds, condition)
# Create example data matrix
X <- matrix(rnorm(20*100), 20, 100)
# Create design information
Y <- tibble::tibble(
condition = rep(c("control", "treatment"), each=10),
subject = rep(1:5, times=4)
)
# Create column metadata
col_info <- data.frame(
roi = paste0("region_", 1:100),
hemisphere = rep(c("left", "right"), 50)
)
# Create multidesign object
mds <- multidesign(X, Y, col_info)