\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\) \(\newcommand{\W}[1]{ \; #1 \; }\)
subgroup_table#
View page sourceThe Subgroup Table#
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.