const struct rank_spec *rank_specs, int n_rank_specs)
{
struct case_ordering *base_ordering;
const struct rank_spec *rank_specs, int n_rank_specs)
{
struct case_ordering *base_ordering;
rank_sorted_file (group, output, dataset_dict (ds),
rank_specs, n_rank_specs,
rank_sorted_file (group, output, dataset_dict (ds),
rank_specs, n_rank_specs,
ok = casegrouper_destroy (grouper);
ok = proc_commit (ds) && ok;
ranked_file = casewriter_make_reader (output);
ok = casegrouper_destroy (grouper);
ok = proc_commit (ds) && ok;
ranked_file = casewriter_make_reader (output);
struct casewriter *output,
const struct dictionary *dict,
struct casewriter *output,
const struct dictionary *dict,
const struct variable *rank_var)
{
struct casereader *pass1, *pass2, *pass2_1;
const struct variable *rank_var)
{
struct casereader *pass1, *pass2, *pass2_1;
casereader_split (input, &pass1, &pass2);
/* Pass 1: Get total group weight. */
casereader_split (input, &pass1, &pass2);
/* Pass 1: Get total group weight. */
w += dict_get_case_weight (dict, &c, NULL);
casereader_destroy (pass1);
/* Pass 2: Do ranking. */
tie_grouper = casegrouper_create_vars (pass2, &rank_var, 1);
w += dict_get_case_weight (dict, &c, NULL);
casereader_destroy (pass1);
/* Pass 2: Do ranking. */
tie_grouper = casegrouper_create_vars (pass2, &rank_var, 1);
tw += dict_get_case_weight (dict, &c, NULL);
cc += tw;
casereader_destroy (pass2_1);
/* Pass 2.2: Rank tied cases. */
tw += dict_get_case_weight (dict, &c, NULL);
cc += tw;
casereader_destroy (pass2_1);
/* Pass 2.2: Rank tied cases. */
casewriter_write (output, &c);
}
casereader_destroy (pass2_2);
casewriter_write (output, &c);
}
casereader_destroy (pass2_2);
msg(MW, _("FRACTION has been specified, but NORMAL and PROPORTION rank functions have not been requested. The FRACTION subcommand will be ignored.") );
/* Add a variable which we can sort by to get back the original
msg(MW, _("FRACTION has been specified, but NORMAL and PROPORTION rank functions have not been requested. The FRACTION subcommand will be ignored.") );
/* Add a variable which we can sort by to get back the original
add_transformation (ds, create_resort_key, 0, order);
add_transformation (ds, create_resort_key, 0, order);
xcalloc (case_ordering_get_var_cnt (sc),
sizeof (struct variable *));
xcalloc (case_ordering_get_var_cnt (sc),
sizeof (struct variable *));
if (lex_match_id (lexer, "INTO"))
{
struct variable *destvar;
if (lex_match_id (lexer, "INTO"))
{
struct variable *destvar;