Prev Next subgroup_table

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\W}[1]{ \; #1 \; }@)@ This is dismod_at-20221105 documentation: Here is a link to its current documentation .
The Subgroup Table

Purpose
subgroup_id
subgroup_name
group_id
group_name
Discussion
     Spaces
     Order
     group Table
Example

Purpose
This table allows one to divide the data into groups and subgroups. A group (subgroups within a group) correspond to the fixed effects (random effects) created by one row in the covariate multiplier table mulcov_table .

subgroup_id
This column has type integer and is the primary key for this table. Its initial value is zero, and it increments by one for each row.

subgroup_name
This column has type text and has a different value for every row; i.e., the names are unique and can act as substitutes for the primary key. The names are intended to be easier for a human to remember than the ids.

group_id
This column has type integer. Its value in its first row is zero (where subgroup_id is zero). The value in each subsequent row is either the same as the previous row, or one greater than the previous row. The group corresponding to a group id is the union of all the subgroups with the same group_id.

group_name
This column has type text. Rows that have the same (different) group_id must have the same (different) group_name . Spaces are not allowed the group_name because they are used by the zero_sum_mulcov_group option to separate group names. The group_name must be different for different group_id values. In addition, it should note be equal to any subgroup_name values, except in the special case where it is the only subgroup for the group.

Discussion

Spaces
It would be possible to allow spaces in the group_name if we add another option called separator that was the character used to separate lists in the option table (the default value for this option would be space).

Order
The order of the rows in the subgroup table is set up so that group_id is monotone non-decreasing. This requirement could be removed (it just make the initial implementation of subgroups easier).

group Table
One might think it would be easier to have a separate group table and not require group_id to be monotone and not have to include group_name in this table. The problem with this is group is a keyword in SQL and hence it is hard to work with a table named group.

Example
2DO: create a file subgroup_table.py that contains an example subgroup table.
Input File: omh/table/subgroup_table.omh