This function centers the line weights of an `ena.set` by subtracting the mean of each connection from all units. This is a standard step in preparing data for rotation.
Arguments
- x
An `ena.set` object (typically after `sphere_norm()`) or a numeric matrix.
- add.meta
A logical value. If `TRUE` (the default), metadata is preserved. Ignored if `x` is a matrix.
- exclude_zero_networks
A logical value. If `TRUE`, units whose line weights are all zero are left at zero: the column means are computed from the other units and subtracted from those units only, so an empty network sits at the centroid of the others and projects to the origin. This is what `ena.make.set(center.align.to.origin = TRUE)` does. `FALSE` (default here; `model()` defaults to `TRUE`) subtracts the mean of all units from every unit, so an empty network becomes minus the mean.
Value
If `x` is an `ena.set`, it returns the modified `ena.set` with the centered data stored in `x$model$points.for.projection`. If `x` is a matrix, it returns a centered matrix.
Examples
data(RS.data)
codes <- c("Data", "Technical.Constraints", "Performance.Parameters",
"Client.and.Consultant.Requests", "Design.Reasoning",
"Collaboration")
units <- c("Condition", "UserName")
horizon <- c("Condition", "GroupName")
enaset <- RS.data |>
accumulate(units, codes, horizon) |>
sphere_norm() |>
center()
