+ numerics = xnmalloc (n_numerics, sizeof *numerics);
+ categoricals = xnmalloc (n_categoricals, sizeof (*categoricals));
+ size_t j = 0;
+ size_t k = 0;
+ for (i = 0; i < cmd->n_by; i++)
+ {
+ if (var_is_alpha (cmd->v_by[i]))
+ {
+ categoricals[j] = cmd->v_by[i];
+ j++;
+ }
+ else
+ {
+ numerics[k] = cmd->v_by[i];
+ k++;
+ }
+ }
+ for (i = 0; i < cmd->n_with; i++)
+ {
+ if (var_is_alpha (cmd->v_with[i]))
+ {
+ categoricals[j] = cmd->v_with[i];
+ j++;
+ }
+ else
+ {
+ numerics[k] = cmd->v_with[i];
+ k++;
+ }
+ }
+ for (i = 0; i < n_dependent; i++)
+ {
+ numerics[k] = v_dependent[i];
+ k++;
+ }
+
+ struct categoricals *cats =
+ categoricals_create (categoricals, n_categoricals,
+ NULL, MV_NEVER,
+ NULL, NULL, NULL);
+
+ cov = covariance_2pass_create (n_numerics, numerics,
+ cats,
+ NULL, MV_NEVER);