diff --git a/c/mapping/mapper_stats2.c b/c/mapping/mapper_stats2.c index b41877722..c7b605ccb 100644 --- a/c/mapping/mapper_stats2.c +++ b/c/mapping/mapper_stats2.c @@ -29,7 +29,7 @@ typedef struct _stats2_t { stats2_get_func_t* pget_func; } stats2_t; -typedef stats2_t* stats2_alloc_func_t(static_context_t* pstatx); +typedef stats2_t* stats2_alloc_func_t(static_context_t* pstatx, int do_verbose); // xxx move to mlrstat.h/c @@ -75,24 +75,24 @@ typedef stats2_t* stats2_alloc_func_t(static_context_t* pstatx); // b = ---------------------------------------- // D -typedef struct _stats2_linreg_state_t { +typedef struct _stats2_linreg_ols_state_t { unsigned long long count; double sumx; double sumy; double sumx2; double sumxy; static_context_t* pstatx; -} stats2_linreg_state_t; -void stats2_linreg_put(void* pvstate, double x, double y) { - stats2_linreg_state_t* pstate = pvstate; +} stats2_linreg_ols_state_t; +void stats2_linreg_ols_put(void* pvstate, double x, double y) { + stats2_linreg_ols_state_t* pstate = pvstate; pstate->count++; pstate->sumx += x; pstate->sumy += y; pstate->sumx2 += x*x; pstate->sumxy += x*y; } -void stats2_linreg_get(void* pvstate, char* name1, char* name2, lrec_t* poutrec) { - stats2_linreg_state_t* pstate = pvstate; +void stats2_linreg_ols_get(void* pvstate, char* name1, char* name2, lrec_t* poutrec) { + stats2_linreg_ols_state_t* pstate = pvstate; int n = pstate->count; double sumx = pstate->sumx; double sumy = pstate->sumy; @@ -117,17 +117,17 @@ void stats2_linreg_get(void* pvstate, char* name1, char* name2, lrec_t* poutrec) // // return [m, b, math.sqrt(var_m), math.sqrt(var_b)] - char* key = mlr_paste_4_strings(name1, "_", name2, "_m"); + char* key = mlr_paste_4_strings(name1, "_", name2, "_ols_m"); char* val = mlr_alloc_string_from_double(m, pstate->pstatx->ofmt); lrec_put(poutrec, key, val, LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - key = mlr_paste_4_strings(name1, "_", name2, "_b"); + key = mlr_paste_4_strings(name1, "_", name2, "_ols_b"); val = mlr_alloc_string_from_double(b, pstate->pstatx->ofmt); lrec_put(poutrec, key, val, LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); } -stats2_t* stats2_linreg_alloc(static_context_t* pstatx) { +stats2_t* stats2_linreg_ols_alloc(static_context_t* pstatx, int do_verbose) { stats2_t* pstats2 = mlr_malloc_or_die(sizeof(stats2_t)); - stats2_linreg_state_t* pstate = mlr_malloc_or_die(sizeof(stats2_linreg_state_t)); + stats2_linreg_ols_state_t* pstate = mlr_malloc_or_die(sizeof(stats2_linreg_ols_state_t)); pstate->count = 0LL; pstate->sumx = 0.0; pstate->sumy = 0.0; @@ -135,8 +135,8 @@ stats2_t* stats2_linreg_alloc(static_context_t* pstatx) { pstate->sumxy = 0.0; pstate->pstatx = pstatx; pstats2->pvstate = (void*)pstate; - pstats2->pput_func = &stats2_linreg_put; - pstats2->pget_func = &stats2_linreg_get; + pstats2->pput_func = &stats2_linreg_ols_put; + pstats2->pget_func = &stats2_linreg_ols_get; return pstats2; } @@ -183,7 +183,7 @@ void stats2_r2_get(void* pvstate, char* name1, char* name2, lrec_t* poutrec) { lrec_put(poutrec, key, val, LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); } } -stats2_t* stats2_r2_alloc(static_context_t* pstatx) { +stats2_t* stats2_r2_alloc(static_context_t* pstatx, int do_verbose) { stats2_t* pstats2 = mlr_malloc_or_die(sizeof(stats2_t)); stats2_r2_state_t* pstate = mlr_malloc_or_die(sizeof(stats2_r2_state_t)); pstate->count = 0LL; @@ -220,7 +220,7 @@ typedef struct _stats2_corr_cov_state_t { double sumxy; double sumy2; int do_which; - // xxx do_verbose; + int do_verbose; static_context_t* pstatx; } stats2_corr_cov_state_t; void stats2_corr_cov_put(void* pvstate, double x, double y) { @@ -272,12 +272,14 @@ void stats2_corr_cov_get(void* pvstate, char* name1, char* name2, lrec_t* poutre lrec_put(poutrec, keym, "", LREC_FREE_ENTRY_KEY); lrec_put(poutrec, keyb, "", LREC_FREE_ENTRY_KEY); lrec_put(poutrec, keyq, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyl1, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyl2, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyv11, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyv12, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyv21, "", LREC_FREE_ENTRY_KEY); - lrec_put(poutrec, keyv22, "", LREC_FREE_ENTRY_KEY); + if (pstate->do_verbose) { + lrec_put(poutrec, keyl1, "", LREC_FREE_ENTRY_KEY); + lrec_put(poutrec, keyl2, "", LREC_FREE_ENTRY_KEY); + lrec_put(poutrec, keyv11, "", LREC_FREE_ENTRY_KEY); + lrec_put(poutrec, keyv12, "", LREC_FREE_ENTRY_KEY); + lrec_put(poutrec, keyv21, "", LREC_FREE_ENTRY_KEY); + lrec_put(poutrec, keyv22, "", LREC_FREE_ENTRY_KEY); + } } else { double Q[2][2]; mlr_get_cov_matrix(pstate->count, @@ -295,12 +297,14 @@ void stats2_corr_cov_get(void* pvstate, char* name1, char* name2, lrec_t* poutre lrec_put(poutrec, keym, mlr_alloc_string_from_double(m, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); lrec_put(poutrec, keyb, mlr_alloc_string_from_double(b, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); lrec_put(poutrec, keyq, mlr_alloc_string_from_double(q, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyl1, mlr_alloc_string_from_double(l1, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyl2, mlr_alloc_string_from_double(l2, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyv11, mlr_alloc_string_from_double(v1[0], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyv12, mlr_alloc_string_from_double(v1[1], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyv21, mlr_alloc_string_from_double(v2[0], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); - lrec_put(poutrec, keyv22, mlr_alloc_string_from_double(v2[1], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + if (pstate->do_verbose) { + lrec_put(poutrec, keyl1, mlr_alloc_string_from_double(l1, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + lrec_put(poutrec, keyl2, mlr_alloc_string_from_double(l2, pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + lrec_put(poutrec, keyv11, mlr_alloc_string_from_double(v1[0], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + lrec_put(poutrec, keyv12, mlr_alloc_string_from_double(v1[1], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + lrec_put(poutrec, keyv21, mlr_alloc_string_from_double(v2[0], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + lrec_put(poutrec, keyv22, mlr_alloc_string_from_double(v2[1], pstate->pstatx->ofmt), LREC_FREE_ENTRY_KEY|LREC_FREE_ENTRY_VALUE); + } } } else { char* suffix = (pstate->do_which == DO_CORR) ? "corr" : "cov"; @@ -319,7 +323,7 @@ void stats2_corr_cov_get(void* pvstate, char* name1, char* name2, lrec_t* poutre } } } -stats2_t* stats2_corr_cov_alloc(int do_which, static_context_t* pstatx) { +stats2_t* stats2_corr_cov_alloc(int do_which, int do_verbose, static_context_t* pstatx) { stats2_t* pstats2 = mlr_malloc_or_die(sizeof(stats2_t)); stats2_corr_cov_state_t* pstate = mlr_malloc_or_die(sizeof(stats2_corr_cov_state_t)); pstate->count = 0LL; @@ -329,23 +333,24 @@ stats2_t* stats2_corr_cov_alloc(int do_which, static_context_t* pstatx) { pstate->sumxy = 0.0; pstate->sumy2 = 0.0; pstate->do_which = do_which; + pstate->do_verbose = do_verbose; pstate->pstatx = pstatx; pstats2->pvstate = (void*)pstate; pstats2->pput_func = &stats2_corr_cov_put; pstats2->pget_func = &stats2_corr_cov_get; return pstats2; } -stats2_t* stats2_corr_alloc(static_context_t* pstatx) { - return stats2_corr_cov_alloc(DO_CORR, pstatx); +stats2_t* stats2_corr_alloc(static_context_t* pstatx, int do_verbose) { + return stats2_corr_cov_alloc(DO_CORR, do_verbose, pstatx); } -stats2_t* stats2_cov_alloc(static_context_t* pstatx) { - return stats2_corr_cov_alloc(DO_COV, pstatx); +stats2_t* stats2_cov_alloc(static_context_t* pstatx, int do_verbose) { + return stats2_corr_cov_alloc(DO_COV, do_verbose, pstatx); } -stats2_t* stats2_covx_alloc(static_context_t* pstatx) { - return stats2_corr_cov_alloc(DO_COVX, pstatx); +stats2_t* stats2_covx_alloc(static_context_t* pstatx, int do_verbose) { + return stats2_corr_cov_alloc(DO_COVX, do_verbose, pstatx); } -stats2_t* stats2_linreg_pca_alloc(static_context_t* pstatx) { - return stats2_corr_cov_alloc(DO_LINREG_PCA, pstatx); +stats2_t* stats2_linreg_pca_alloc(static_context_t* pstatx, int do_verbose) { + return stats2_corr_cov_alloc(DO_LINREG_PCA, do_verbose, pstatx); } // ---------------------------------------------------------------- @@ -355,19 +360,19 @@ typedef struct _stats2_lookup_t { static_context_t* pstatx; } stats2_lookup_t; static stats2_lookup_t stats2_lookup_table[] = { - {"linreg", stats2_linreg_alloc}, - {"r2", stats2_r2_alloc}, - {"corr", stats2_corr_alloc}, - {"cov", stats2_cov_alloc}, - {"covx", stats2_covx_alloc}, - {"linregpca", stats2_linreg_pca_alloc}, + {"linreg-ols", stats2_linreg_ols_alloc}, + {"r2", stats2_r2_alloc}, + {"corr", stats2_corr_alloc}, + {"cov", stats2_cov_alloc}, + {"covx", stats2_covx_alloc}, + {"linreg-pca", stats2_linreg_pca_alloc}, }; static int stats2_lookup_table_length = sizeof(stats2_lookup_table) / sizeof(stats2_lookup_table[0]); -static stats2_t* make_stats2(char* stats2_name, static_context_t* pstatx) { +static stats2_t* make_stats2(char* stats2_name, int do_verbose, static_context_t* pstatx) { for (int i = 0; i < stats2_lookup_table_length; i++) if (streq(stats2_name, stats2_lookup_table[i].name)) - return stats2_lookup_table[i].pnew_func(pstatx); + return stats2_lookup_table[i].pnew_func(pstatx, do_verbose); return NULL; } @@ -378,7 +383,7 @@ typedef struct _mapper_stats2_state_t { slls_t* pgroup_by_field_names; lhmslv_t* pmaps_level_1; - + int do_verbose; } mapper_stats2_state_t; // given: accumulate count,sum on values x,y group by a,b @@ -439,7 +444,7 @@ sllv_t* mapper_stats2_func(lrec_t* pinrec, context_t* pctx, void* pvstate) { char* stats2_name = pc->value; stats2_t* pstats2 = lhmsv_get(pmaps_level_3, stats2_name); if (pstats2 == NULL) { - pstats2 = make_stats2(stats2_name, &pctx->statx); + pstats2 = make_stats2(stats2_name, pstate->do_verbose, &pctx->statx); if (pstats2 == NULL) { fprintf(stderr, "mlr stats2: accumulator \"%s\" not found.\n", stats2_name); @@ -506,7 +511,7 @@ static void mapper_stats2_free(void* pvstate) { } mapper_t* mapper_stats2_alloc(slls_t* paccumulator_names, slls_t* pvalue_field_name_pairs, - slls_t* pgroup_by_field_names) + slls_t* pgroup_by_field_names, int do_verbose) { mapper_t* pmapper = mlr_malloc_or_die(sizeof(mapper_t)); @@ -515,6 +520,7 @@ mapper_t* mapper_stats2_alloc(slls_t* paccumulator_names, slls_t* pvalue_field_n pstate->pvalue_field_name_pairs = pvalue_field_name_pairs; // xxx validate length is even pstate->pgroup_by_field_names = pgroup_by_field_names; pstate->pmaps_level_1 = lhmslv_alloc(); + pstate->do_verbose = do_verbose; pmapper->pvstate = pstate; pmapper->pmapper_process_func = mapper_stats2_func; @@ -526,7 +532,7 @@ mapper_t* mapper_stats2_alloc(slls_t* paccumulator_names, slls_t* pvalue_field_n // ---------------------------------------------------------------- void mapper_stats2_usage(char* argv0, char* verb) { fprintf(stdout, "Usage: %s %s [options]\n", argv0, verb); - fprintf(stdout, "-a {linreg,corr,...} Names of accumulators: one or more of\n"); + fprintf(stdout, "-a {linreg-ols,corr,...} Names of accumulators: one or more of\n"); fprintf(stdout, " "); for (int i = 0; i < stats2_lookup_table_length; i++) { fprintf(stdout, " %s", stats2_lookup_table[i].name); @@ -535,12 +541,14 @@ void mapper_stats2_usage(char* argv0, char* verb) { fprintf(stdout, "-f {a,b,c,d} Value-field names on which to compute statistics.\n"); fprintf(stdout, " There must be an even number of these.\n"); fprintf(stdout, "-g {d,e,f} Group-by-field names\n"); + fprintf(stdout, "-v Print additional output for linreg-pca.\n"); } mapper_t* mapper_stats2_parse_cli(int* pargi, int argc, char** argv) { slls_t* paccumulator_names = NULL; slls_t* pvalue_field_names = NULL; slls_t* pgroup_by_field_names = slls_alloc(); + int do_verbose = FALSE; char* verb = argv[(*pargi)++]; @@ -548,6 +556,7 @@ mapper_t* mapper_stats2_parse_cli(int* pargi, int argc, char** argv) { ap_define_string_list_flag(pstate, "-a", &paccumulator_names); ap_define_string_list_flag(pstate, "-f", &pvalue_field_names); ap_define_string_list_flag(pstate, "-g", &pgroup_by_field_names); + ap_define_true_flag(pstate, "-v", &do_verbose); if (!ap_parse(pstate, verb, pargi, argc, argv)) { mapper_stats2_usage(argv[0], verb); @@ -563,7 +572,7 @@ mapper_t* mapper_stats2_parse_cli(int* pargi, int argc, char** argv) { return NULL; } - return mapper_stats2_alloc(paccumulator_names, pvalue_field_names, pgroup_by_field_names); + return mapper_stats2_alloc(paccumulator_names, pvalue_field_names, pgroup_by_field_names, do_verbose); } // ---------------------------------------------------------------- diff --git a/c/test/expected/out b/c/test/expected/out index caca00f36..6f7e20c64 100644 --- a/c/test/expected/out +++ b/c/test/expected/out @@ -231,33 +231,33 @@ zee wye 8.000000 8.000000 1 8.000000 8.000000 0.598554 0.598554 1 hat wye 9.000000 9.000000 1 9.000000 9.000000 0.031442 0.031442 1 0.031442 0.031442 0.749551 0.749551 1 0.749551 0.749551 pan wye 10.000000 10.000000 1 10.000000 10.000000 0.502626 0.502626 1 0.502626 0.502626 0.952618 0.952618 1 0.952618 0.952618 -./test/../mlr --opprint stats2 -a linreg,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b ./test/input/abixy-wide -a b x_y_m x_y_b x_y_r2 x_y_corr x_y_cov xy_y2_m xy_y2_b xy_y2_r2 xy_y2_corr xy_y2_cov x2_x2_m x2_x2_b x2_x2_r2 x2_x2_corr x2_x2_cov -cat pan 0.054420 0.481777 0.002504 0.050036 0.003777 0.950908 0.105754 0.435336 0.659800 0.041616 1.000000 0.000000 1.000000 1.000000 0.066303 -pan wye -0.145486 0.584799 0.019479 -0.139568 -0.012683 0.908151 0.126628 0.438850 0.662457 0.046203 1.000000 0.000000 1.000000 1.000000 0.093192 -wye cat 0.185913 0.377639 0.033002 0.181665 0.014494 0.969266 0.040602 0.561236 0.749157 0.052090 1.000000 0.000000 1.000000 1.000000 0.086883 -dog hat 0.100096 0.448757 0.010462 0.102283 0.008036 0.919149 0.090504 0.507155 0.712148 0.045034 1.000000 0.000000 1.000000 1.000000 0.081226 -dog pan -0.066834 0.590647 0.005924 -0.076969 -0.005709 0.726118 0.164937 0.315011 0.561259 0.034107 1.000000 0.000000 1.000000 1.000000 0.098975 -pan pan 0.094932 0.461566 0.009768 0.098832 0.007175 0.822261 0.123441 0.465390 0.682195 0.039784 1.000000 0.000000 1.000000 1.000000 0.080908 -hat hat 0.043668 0.405219 0.001324 0.036392 0.003037 1.128896 0.015188 0.708725 0.841858 0.060975 1.000000 0.000000 1.000000 1.000000 0.084636 -wye hat 0.043018 0.496029 0.002197 0.046876 0.004023 0.720402 0.165623 0.353558 0.594608 0.038763 1.000000 0.000000 1.000000 1.000000 0.091675 -pan hat 0.120797 0.448197 0.013060 0.114278 0.008987 0.962678 0.076920 0.622353 0.788893 0.054965 1.000000 0.000000 1.000000 1.000000 0.079553 -cat hat 0.172391 0.464384 0.030150 0.173639 0.015030 0.904257 0.133482 0.498171 0.705812 0.055626 1.000000 0.000000 1.000000 1.000000 0.089895 -hat wye -0.022975 0.496361 0.000514 -0.022665 -0.002000 0.971929 0.096088 0.386354 0.621574 0.040126 1.000000 0.000000 1.000000 1.000000 0.075309 -dog dog 0.078397 0.489236 0.007619 0.087288 0.008214 0.776967 0.150999 0.408257 0.638950 0.049648 1.000000 0.000000 1.000000 1.000000 0.106525 -wye dog 0.116403 0.425576 0.011048 0.105109 0.007867 0.925781 0.071192 0.501559 0.708208 0.046440 1.000000 0.000000 1.000000 1.000000 0.081433 -wye wye -0.188354 0.613934 0.031156 -0.176512 -0.015876 0.876717 0.159179 0.325193 0.570257 0.042026 1.000000 0.000000 1.000000 1.000000 0.087513 -dog wye 0.029527 0.502643 0.000913 0.030211 0.002391 0.904925 0.120816 0.432413 0.657581 0.042857 1.000000 0.000000 1.000000 1.000000 0.083924 -cat dog 0.057573 0.408644 0.003442 0.058671 0.005320 0.884325 0.079999 0.479596 0.692528 0.044762 1.000000 0.000000 1.000000 1.000000 0.098206 -hat pan -0.154393 0.564981 0.025143 -0.158566 -0.012756 0.911165 0.104362 0.397150 0.630199 0.035622 1.000000 0.000000 1.000000 1.000000 0.087879 -cat wye -0.014851 0.564875 0.000224 -0.014982 -0.000966 0.878820 0.086362 0.463961 0.681147 0.041096 1.000000 0.000000 1.000000 1.000000 0.081922 -hat cat -0.022859 0.498539 0.000610 -0.024689 -0.002116 0.840965 0.111121 0.373515 0.611158 0.036575 1.000000 0.000000 1.000000 1.000000 0.093075 -dog cat 0.104057 0.428559 0.008705 0.093300 0.007122 1.080443 0.023866 0.547103 0.739664 0.050357 1.000000 0.000000 1.000000 1.000000 0.075381 -hat dog 0.041849 0.427228 0.001918 0.043789 0.003856 0.776135 0.114930 0.372058 0.609966 0.040583 1.000000 0.000000 1.000000 1.000000 0.104033 -pan dog 0.119510 0.467833 0.011427 0.106896 0.009302 0.948592 0.107556 0.541263 0.735706 0.056609 1.000000 0.000000 1.000000 1.000000 0.088101 -cat cat 0.016257 0.425410 0.000273 0.016510 0.001350 0.930954 0.072476 0.446764 0.668404 0.036267 1.000000 0.000000 1.000000 1.000000 0.086429 -pan cat -0.188523 0.616919 0.037036 -0.192447 -0.016206 0.781770 0.176617 0.278739 0.527958 0.032984 1.000000 0.000000 1.000000 1.000000 0.093193 -wye pan 0.229443 0.444446 0.046722 0.216152 0.020367 0.887659 0.145052 0.462545 0.680107 0.064496 1.000000 0.000000 1.000000 1.000000 0.103497 +./test/../mlr --opprint stats2 -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b ./test/input/abixy-wide +a b x_y_ols_m x_y_ols_b x_x_pca_m x_y_pca_b y_x_pca_quality x_y_r2 x_y_corr x_y_cov xy_y2_ols_m xy_y2_ols_b xy_xy_pca_m xy_y2_pca_b y2_xy_pca_quality xy_y2_r2 xy_y2_corr xy_y2_cov x2_x2_ols_m x2_x2_ols_b x2_x2_pca_m x2_x2_pca_b x2_x2_pca_quality x2_x2_r2 x2_x2_corr x2_x2_cov +cat pan 0.054420 0.481777 3.636062 -1.221602 0.177683 0.002504 0.050036 0.003777 0.950908 0.105754 1.715574 -0.081719 0.830612 0.435336 0.659800 0.041616 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.066303 +pan wye -0.145486 0.584799 -1.340927 1.199920 0.254025 0.019479 -0.139568 -0.012683 0.908151 0.126628 1.595150 -0.045034 0.824114 0.438850 0.662457 0.046203 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093192 +wye cat 0.185913 0.377639 1.135325 -0.145894 0.309499 0.033002 0.181665 0.014494 0.969266 0.040602 1.406365 -0.081379 0.868480 0.561236 0.749157 0.052090 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.086883 +dog hat 0.100096 0.448757 0.810749 0.097346 0.189256 0.010462 0.102283 0.008036 0.919149 0.090504 1.425774 -0.038344 0.846209 0.507155 0.712148 0.045034 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081226 +dog pan -0.066834 0.590647 -0.254112 0.688837 0.275316 0.005924 -0.076969 -0.005709 0.726118 0.164937 1.566309 -0.075073 0.749025 0.315011 0.561259 0.034107 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.098975 +pan pan 0.094932 0.461566 0.672369 0.189898 0.192719 0.009768 0.098832 0.007175 0.822261 0.123441 1.312543 0.003200 0.820351 0.465390 0.682195 0.039784 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.080908 +hat hat 0.043668 0.405219 10.170494 -5.125282 0.310513 0.001324 0.036392 0.003037 1.128896 0.015188 1.414166 -0.052514 0.922308 0.708725 0.841858 0.060975 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.084636 +wye hat 0.043018 0.496029 0.254879 0.395780 0.177794 0.002197 0.046876 0.004023 0.720402 0.165623 1.376136 0.002792 0.760716 0.353558 0.594608 0.038763 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.091675 +pan hat 0.120797 0.448197 1.597359 -0.325695 0.225137 0.013060 0.114278 0.008987 0.962678 0.076920 1.285796 -0.012566 0.887704 0.622353 0.788893 0.054965 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.079553 +cat hat 0.172391 0.464384 0.959329 0.086790 0.296109 0.030150 0.173639 0.015030 0.904257 0.133482 1.415658 -0.008369 0.841567 0.498171 0.705812 0.055626 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.089895 +hat wye -0.022975 0.496361 -1.765884 1.344268 0.051493 0.000514 -0.022665 -0.002000 0.971929 0.096088 1.989422 -0.142072 0.825656 0.386354 0.621574 0.040126 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.075309 +dog dog 0.078397 0.489236 0.354494 0.351041 0.242210 0.007619 0.087288 0.008214 0.776967 0.150999 1.354405 -0.006432 0.792265 0.408257 0.638950 0.049648 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.106525 +wye dog 0.116403 0.425576 2.367821 -0.777734 0.254607 0.011048 0.105109 0.007867 0.925781 0.071192 1.453590 -0.070509 0.845204 0.501559 0.708208 0.046440 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081433 +wye wye -0.188354 0.613934 -1.433772 1.217887 0.316070 0.031156 -0.176512 -0.015876 0.876717 0.159179 2.044493 -0.118503 0.795455 0.325193 0.570257 0.042026 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.087513 +dog wye 0.029527 0.502643 0.496713 0.282511 0.073039 0.000913 0.030211 0.002391 0.904925 0.120816 1.609123 -0.052245 0.821822 0.432413 0.657581 0.042857 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.083924 +cat dog 0.057573 0.408644 0.728479 0.071114 0.116103 0.003442 0.058671 0.005320 0.884325 0.079999 1.418207 -0.040344 0.832998 0.479596 0.692528 0.044762 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.098206 +hat pan -0.154393 0.564981 -0.845852 0.911026 0.276955 0.025143 -0.158566 -0.012756 0.911165 0.104362 1.763740 -0.092987 0.814584 0.397150 0.630199 0.035622 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.087879 +cat wye -0.014851 0.564875 -0.572708 0.892322 0.034146 0.000224 -0.014982 -0.000966 0.878820 0.086362 1.447244 -0.098657 0.827119 0.463961 0.681147 0.041096 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081922 +hat cat -0.022859 0.498539 -0.156242 0.565723 0.149344 0.000610 -0.024689 -0.002116 0.840965 0.111121 1.663518 -0.088942 0.793883 0.373515 0.611158 0.036575 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093075 +dog cat 0.104057 0.428559 2.712382 -1.005787 0.250036 0.008705 0.093300 0.007122 1.080443 0.023866 1.653922 -0.133367 0.875586 0.547103 0.739664 0.050357 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.075381 +hat dog 0.041849 0.427228 0.403977 0.254919 0.118494 0.001918 0.043789 0.003856 0.776135 0.114930 1.475403 -0.036508 0.779056 0.372058 0.609966 0.040583 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.104033 +pan dog 0.119510 0.467833 2.492496 -0.761490 0.266455 0.011427 0.106896 0.009302 0.948592 0.107556 1.408389 -0.022846 0.860243 0.541263 0.735706 0.056609 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.088101 +cat cat 0.016257 0.425410 0.432946 0.225535 0.044275 0.000273 0.016510 0.001350 0.930954 0.072476 1.624993 -0.072669 0.830029 0.446764 0.668404 0.036267 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.086429 +pan cat -0.188523 0.616919 -0.898665 0.953923 0.324264 0.037036 -0.192447 -0.016206 0.781770 0.176617 2.020454 -0.113587 0.762332 0.278739 0.527958 0.032984 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093193 +wye pan 0.229443 0.444446 1.313689 -0.098124 0.365811 0.046722 0.216152 0.020367 0.887659 0.145052 1.471906 -0.030176 0.827911 0.462545 0.680107 0.064496 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.103497 ./test/../mlr --opprint step -a rsum,delta,counter -f x,y -g a ./test/input/abixy a b i x y x_rsum x_delta x_counter y_rsum y_delta y_counter diff --git a/c/test/output/out b/c/test/output/out index caca00f36..6f7e20c64 100644 --- a/c/test/output/out +++ b/c/test/output/out @@ -231,33 +231,33 @@ zee wye 8.000000 8.000000 1 8.000000 8.000000 0.598554 0.598554 1 hat wye 9.000000 9.000000 1 9.000000 9.000000 0.031442 0.031442 1 0.031442 0.031442 0.749551 0.749551 1 0.749551 0.749551 pan wye 10.000000 10.000000 1 10.000000 10.000000 0.502626 0.502626 1 0.502626 0.502626 0.952618 0.952618 1 0.952618 0.952618 -./test/../mlr --opprint stats2 -a linreg,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b ./test/input/abixy-wide -a b x_y_m x_y_b x_y_r2 x_y_corr x_y_cov xy_y2_m xy_y2_b xy_y2_r2 xy_y2_corr xy_y2_cov x2_x2_m x2_x2_b x2_x2_r2 x2_x2_corr x2_x2_cov -cat pan 0.054420 0.481777 0.002504 0.050036 0.003777 0.950908 0.105754 0.435336 0.659800 0.041616 1.000000 0.000000 1.000000 1.000000 0.066303 -pan wye -0.145486 0.584799 0.019479 -0.139568 -0.012683 0.908151 0.126628 0.438850 0.662457 0.046203 1.000000 0.000000 1.000000 1.000000 0.093192 -wye cat 0.185913 0.377639 0.033002 0.181665 0.014494 0.969266 0.040602 0.561236 0.749157 0.052090 1.000000 0.000000 1.000000 1.000000 0.086883 -dog hat 0.100096 0.448757 0.010462 0.102283 0.008036 0.919149 0.090504 0.507155 0.712148 0.045034 1.000000 0.000000 1.000000 1.000000 0.081226 -dog pan -0.066834 0.590647 0.005924 -0.076969 -0.005709 0.726118 0.164937 0.315011 0.561259 0.034107 1.000000 0.000000 1.000000 1.000000 0.098975 -pan pan 0.094932 0.461566 0.009768 0.098832 0.007175 0.822261 0.123441 0.465390 0.682195 0.039784 1.000000 0.000000 1.000000 1.000000 0.080908 -hat hat 0.043668 0.405219 0.001324 0.036392 0.003037 1.128896 0.015188 0.708725 0.841858 0.060975 1.000000 0.000000 1.000000 1.000000 0.084636 -wye hat 0.043018 0.496029 0.002197 0.046876 0.004023 0.720402 0.165623 0.353558 0.594608 0.038763 1.000000 0.000000 1.000000 1.000000 0.091675 -pan hat 0.120797 0.448197 0.013060 0.114278 0.008987 0.962678 0.076920 0.622353 0.788893 0.054965 1.000000 0.000000 1.000000 1.000000 0.079553 -cat hat 0.172391 0.464384 0.030150 0.173639 0.015030 0.904257 0.133482 0.498171 0.705812 0.055626 1.000000 0.000000 1.000000 1.000000 0.089895 -hat wye -0.022975 0.496361 0.000514 -0.022665 -0.002000 0.971929 0.096088 0.386354 0.621574 0.040126 1.000000 0.000000 1.000000 1.000000 0.075309 -dog dog 0.078397 0.489236 0.007619 0.087288 0.008214 0.776967 0.150999 0.408257 0.638950 0.049648 1.000000 0.000000 1.000000 1.000000 0.106525 -wye dog 0.116403 0.425576 0.011048 0.105109 0.007867 0.925781 0.071192 0.501559 0.708208 0.046440 1.000000 0.000000 1.000000 1.000000 0.081433 -wye wye -0.188354 0.613934 0.031156 -0.176512 -0.015876 0.876717 0.159179 0.325193 0.570257 0.042026 1.000000 0.000000 1.000000 1.000000 0.087513 -dog wye 0.029527 0.502643 0.000913 0.030211 0.002391 0.904925 0.120816 0.432413 0.657581 0.042857 1.000000 0.000000 1.000000 1.000000 0.083924 -cat dog 0.057573 0.408644 0.003442 0.058671 0.005320 0.884325 0.079999 0.479596 0.692528 0.044762 1.000000 0.000000 1.000000 1.000000 0.098206 -hat pan -0.154393 0.564981 0.025143 -0.158566 -0.012756 0.911165 0.104362 0.397150 0.630199 0.035622 1.000000 0.000000 1.000000 1.000000 0.087879 -cat wye -0.014851 0.564875 0.000224 -0.014982 -0.000966 0.878820 0.086362 0.463961 0.681147 0.041096 1.000000 0.000000 1.000000 1.000000 0.081922 -hat cat -0.022859 0.498539 0.000610 -0.024689 -0.002116 0.840965 0.111121 0.373515 0.611158 0.036575 1.000000 0.000000 1.000000 1.000000 0.093075 -dog cat 0.104057 0.428559 0.008705 0.093300 0.007122 1.080443 0.023866 0.547103 0.739664 0.050357 1.000000 0.000000 1.000000 1.000000 0.075381 -hat dog 0.041849 0.427228 0.001918 0.043789 0.003856 0.776135 0.114930 0.372058 0.609966 0.040583 1.000000 0.000000 1.000000 1.000000 0.104033 -pan dog 0.119510 0.467833 0.011427 0.106896 0.009302 0.948592 0.107556 0.541263 0.735706 0.056609 1.000000 0.000000 1.000000 1.000000 0.088101 -cat cat 0.016257 0.425410 0.000273 0.016510 0.001350 0.930954 0.072476 0.446764 0.668404 0.036267 1.000000 0.000000 1.000000 1.000000 0.086429 -pan cat -0.188523 0.616919 0.037036 -0.192447 -0.016206 0.781770 0.176617 0.278739 0.527958 0.032984 1.000000 0.000000 1.000000 1.000000 0.093193 -wye pan 0.229443 0.444446 0.046722 0.216152 0.020367 0.887659 0.145052 0.462545 0.680107 0.064496 1.000000 0.000000 1.000000 1.000000 0.103497 +./test/../mlr --opprint stats2 -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b ./test/input/abixy-wide +a b x_y_ols_m x_y_ols_b x_x_pca_m x_y_pca_b y_x_pca_quality x_y_r2 x_y_corr x_y_cov xy_y2_ols_m xy_y2_ols_b xy_xy_pca_m xy_y2_pca_b y2_xy_pca_quality xy_y2_r2 xy_y2_corr xy_y2_cov x2_x2_ols_m x2_x2_ols_b x2_x2_pca_m x2_x2_pca_b x2_x2_pca_quality x2_x2_r2 x2_x2_corr x2_x2_cov +cat pan 0.054420 0.481777 3.636062 -1.221602 0.177683 0.002504 0.050036 0.003777 0.950908 0.105754 1.715574 -0.081719 0.830612 0.435336 0.659800 0.041616 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.066303 +pan wye -0.145486 0.584799 -1.340927 1.199920 0.254025 0.019479 -0.139568 -0.012683 0.908151 0.126628 1.595150 -0.045034 0.824114 0.438850 0.662457 0.046203 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093192 +wye cat 0.185913 0.377639 1.135325 -0.145894 0.309499 0.033002 0.181665 0.014494 0.969266 0.040602 1.406365 -0.081379 0.868480 0.561236 0.749157 0.052090 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.086883 +dog hat 0.100096 0.448757 0.810749 0.097346 0.189256 0.010462 0.102283 0.008036 0.919149 0.090504 1.425774 -0.038344 0.846209 0.507155 0.712148 0.045034 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081226 +dog pan -0.066834 0.590647 -0.254112 0.688837 0.275316 0.005924 -0.076969 -0.005709 0.726118 0.164937 1.566309 -0.075073 0.749025 0.315011 0.561259 0.034107 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.098975 +pan pan 0.094932 0.461566 0.672369 0.189898 0.192719 0.009768 0.098832 0.007175 0.822261 0.123441 1.312543 0.003200 0.820351 0.465390 0.682195 0.039784 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.080908 +hat hat 0.043668 0.405219 10.170494 -5.125282 0.310513 0.001324 0.036392 0.003037 1.128896 0.015188 1.414166 -0.052514 0.922308 0.708725 0.841858 0.060975 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.084636 +wye hat 0.043018 0.496029 0.254879 0.395780 0.177794 0.002197 0.046876 0.004023 0.720402 0.165623 1.376136 0.002792 0.760716 0.353558 0.594608 0.038763 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.091675 +pan hat 0.120797 0.448197 1.597359 -0.325695 0.225137 0.013060 0.114278 0.008987 0.962678 0.076920 1.285796 -0.012566 0.887704 0.622353 0.788893 0.054965 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.079553 +cat hat 0.172391 0.464384 0.959329 0.086790 0.296109 0.030150 0.173639 0.015030 0.904257 0.133482 1.415658 -0.008369 0.841567 0.498171 0.705812 0.055626 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.089895 +hat wye -0.022975 0.496361 -1.765884 1.344268 0.051493 0.000514 -0.022665 -0.002000 0.971929 0.096088 1.989422 -0.142072 0.825656 0.386354 0.621574 0.040126 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.075309 +dog dog 0.078397 0.489236 0.354494 0.351041 0.242210 0.007619 0.087288 0.008214 0.776967 0.150999 1.354405 -0.006432 0.792265 0.408257 0.638950 0.049648 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.106525 +wye dog 0.116403 0.425576 2.367821 -0.777734 0.254607 0.011048 0.105109 0.007867 0.925781 0.071192 1.453590 -0.070509 0.845204 0.501559 0.708208 0.046440 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081433 +wye wye -0.188354 0.613934 -1.433772 1.217887 0.316070 0.031156 -0.176512 -0.015876 0.876717 0.159179 2.044493 -0.118503 0.795455 0.325193 0.570257 0.042026 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.087513 +dog wye 0.029527 0.502643 0.496713 0.282511 0.073039 0.000913 0.030211 0.002391 0.904925 0.120816 1.609123 -0.052245 0.821822 0.432413 0.657581 0.042857 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.083924 +cat dog 0.057573 0.408644 0.728479 0.071114 0.116103 0.003442 0.058671 0.005320 0.884325 0.079999 1.418207 -0.040344 0.832998 0.479596 0.692528 0.044762 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.098206 +hat pan -0.154393 0.564981 -0.845852 0.911026 0.276955 0.025143 -0.158566 -0.012756 0.911165 0.104362 1.763740 -0.092987 0.814584 0.397150 0.630199 0.035622 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.087879 +cat wye -0.014851 0.564875 -0.572708 0.892322 0.034146 0.000224 -0.014982 -0.000966 0.878820 0.086362 1.447244 -0.098657 0.827119 0.463961 0.681147 0.041096 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.081922 +hat cat -0.022859 0.498539 -0.156242 0.565723 0.149344 0.000610 -0.024689 -0.002116 0.840965 0.111121 1.663518 -0.088942 0.793883 0.373515 0.611158 0.036575 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093075 +dog cat 0.104057 0.428559 2.712382 -1.005787 0.250036 0.008705 0.093300 0.007122 1.080443 0.023866 1.653922 -0.133367 0.875586 0.547103 0.739664 0.050357 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.075381 +hat dog 0.041849 0.427228 0.403977 0.254919 0.118494 0.001918 0.043789 0.003856 0.776135 0.114930 1.475403 -0.036508 0.779056 0.372058 0.609966 0.040583 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.104033 +pan dog 0.119510 0.467833 2.492496 -0.761490 0.266455 0.011427 0.106896 0.009302 0.948592 0.107556 1.408389 -0.022846 0.860243 0.541263 0.735706 0.056609 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.088101 +cat cat 0.016257 0.425410 0.432946 0.225535 0.044275 0.000273 0.016510 0.001350 0.930954 0.072476 1.624993 -0.072669 0.830029 0.446764 0.668404 0.036267 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.086429 +pan cat -0.188523 0.616919 -0.898665 0.953923 0.324264 0.037036 -0.192447 -0.016206 0.781770 0.176617 2.020454 -0.113587 0.762332 0.278739 0.527958 0.032984 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.093193 +wye pan 0.229443 0.444446 1.313689 -0.098124 0.365811 0.046722 0.216152 0.020367 0.887659 0.145052 1.471906 -0.030176 0.827911 0.462545 0.680107 0.064496 1.000000 0.000000 1.000000 0.000000 1.000000 1.000000 1.000000 0.103497 ./test/../mlr --opprint step -a rsum,delta,counter -f x,y -g a ./test/input/abixy a b i x y x_rsum x_delta x_counter y_rsum y_delta y_counter diff --git a/c/test/run b/c/test/run index 0735eac53..0c97c583a 100755 --- a/c/test/run +++ b/c/test/run @@ -82,7 +82,7 @@ announce STATS run_command $mlr count-distinct -f a,b $indir/small $indir/abixy run_command $mlr --opprint stats1 -a avg,sum,count,min,max -f i,x,y -g a,b $indir/abixy -run_command $mlr --opprint stats2 -a linreg,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b $indir/abixy-wide +run_command $mlr --opprint stats2 -a linreg-ols,linreg-pca,r2,corr,cov -f x,y,xy,y2,x2,x2 -g a,b $indir/abixy-wide run_command $mlr --opprint step -a rsum,delta,counter -f x,y -g a $indir/abixy run_command $mlr --opprint histogram -f x,y --lo 0 --hi 1 --nbins 20 $indir/small diff --git a/doc/content-for-data-examples.html b/doc/content-for-data-examples.html index c52738383..7537d249b 100644 --- a/doc/content-for-data-examples.html +++ b/doc/content-for-data-examples.html @@ -19,11 +19,11 @@ cat flins.csv | mlr --icsv --oxtab stats1 -a min,avg,max -f eq_site_deductible,h echo cat flins.csv | mlr --icsv --oxtab stats1 -a min,avg,max -f eq_site_deductible,hu_site_deductible,fl_site_deductible,fr_site_deductible -g county echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f eq_site_deductible,tiv_2012 -g county +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f eq_site_deductible,tiv_2012 -g county echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f tiv_2011,tiv_2012 +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f tiv_2011,tiv_2012 echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f tiv_2011,tiv_2012 -g county +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f tiv_2011,tiv_2012 -g county

xxx plaintext hardlinks diff --git a/doc/content-for-reference.html b/doc/content-for-reference.html index d17d0819f..f17cdbe12 100644 --- a/doc/content-for-reference.html +++ b/doc/content-for-reference.html @@ -442,7 +442,7 @@ fields, optionally categorized by one or more fields.
POKI_RUN_COMMAND{{mlr --oxtab put '$x2=$x*$x; $xy=$x*$y; $y2=$y**2' then stats2 -a cov,corr -f x,y,y,y,x2,xy,x2,y2 data/medium}}HERE
-POKI_RUN_COMMAND{{mlr --opprint put '$x2=$x*$x; $xy=$x*$y; $y2=$y**2' then stats2 -a linreg,r2 -f x,y,y,y,xy,y2 -g a data/medium}}HERE +POKI_RUN_COMMAND{{mlr --opprint put '$x2=$x*$x; $xy=$x*$y; $y2=$y**2' then stats2 -a linreg-ols,r2 -f x,y,y,y,xy,y2 -g a data/medium}}HERE

Here’s an example simple line-fit. The x and y diff --git a/doc/data-examples.html b/doc/data-examples.html index cea9fbca3..3e52b27ce 100644 --- a/doc/data-examples.html +++ b/doc/data-examples.html @@ -167,11 +167,11 @@ cat flins.csv | mlr --icsv --oxtab stats1 -a min,avg,max -f eq_site_deductible,h echo cat flins.csv | mlr --icsv --oxtab stats1 -a min,avg,max -f eq_site_deductible,hu_site_deductible,fl_site_deductible,fr_site_deductible -g county echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f eq_site_deductible,tiv_2012 -g county +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f eq_site_deductible,tiv_2012 -g county echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f tiv_2011,tiv_2012 +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f tiv_2011,tiv_2012 echo -cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg,r2 -f tiv_2011,tiv_2012 -g county +cat flins.csv | mlr --icsv --opprint stats2 -a corr,linreg-ols,r2 -f tiv_2011,tiv_2012 -g county

xxx plaintext hardlinks diff --git a/doc/data/linreg-example.txt b/doc/data/linreg-example.txt index 81865a3bb..80ca926f3 100644 --- a/doc/data/linreg-example.txt +++ b/doc/data/linreg-example.txt @@ -1,13 +1,13 @@ mlr filter '($x<.5 && $y<.5) || ($x>.5 && $y>.5)' data/medium > data/medium-squares -mlr --ofs newline stats2 -a linreg -f x,y data/medium-squares -x_y_m=0.764675 -x_y_b=0.124841 +mlr --ofs newline stats2 -a linreg-ols -f x,y data/medium-squares +x_y_ols_m=0.764675 +x_y_ols_b=0.124841 -# Set x_y_m and x_y_b as shell variables -eval $(mlr --ofs newline stats2 -a linreg -f x,y data/medium-squares) +# Set x_y_ols_m and x_y_ols_b as shell variables +eval $(mlr --ofs newline stats2 -a linreg-ols -f x,y data/medium-squares) # In addition to x and y, make a new yfit which is the line fit. Plot using your favorite tool. -mlr --onidx put '$yfit='$x_y_m'*$x+'$x_y_b then cut -x -f a,b,i data/medium-squares \ - | pgr -p -title 'linreg example' +mlr --onidx put '$yfit='$x_y_ols_m'*$x+'$x_y_ols_b then cut -x -f a,b,i data/medium-squares \ + | pgr -p -title 'linreg-ols example' diff --git a/doc/reference.html b/doc/reference.html index c3fc1d724..2f34389e7 100644 --- a/doc/reference.html +++ b/doc/reference.html @@ -1122,8 +1122,8 @@ zee 0.504242 0.502997

 $ mlr stats2 --help
 Usage: mlr stats2 [options]
--a {linreg,corr,...}    Names of accumulators: one or more of
-                      linreg r2 corr cov covx
+-a {linreg-ols,corr,...}    Names of accumulators: one or more of
+                      linreg-ols r2 corr cov covx linreg-pca
 -f {a,b,c,d}          Value-field names on which to compute statistics.
                       There must be an even number of these.
 -g {d,e,f}            Group-by-field names
@@ -1154,13 +1154,13 @@ x2_y2_corr -0.003425
 

-$ mlr --opprint put '$x2=$x*$x; $xy=$x*$y; $y2=$y**2' then stats2 -a linreg,r2 -f x,y,y,y,xy,y2 -g a data/medium
-a   x_y_m     x_y_b    x_y_r2   y_y_m    y_y_b    y_y_r2   xy_y2_m  xy_y2_b  xy_y2_r2
-pan 0.017026  0.500403 0.000287 1.000000 0.000000 1.000000 0.878132 0.119082 0.417498
-eks 0.040780  0.481402 0.001646 1.000000 0.000000 1.000000 0.897873 0.107341 0.455632
-wye -0.039153 0.525510 0.001505 1.000000 0.000000 1.000000 0.853832 0.126745 0.389917
-zee 0.002781  0.504307 0.000008 1.000000 0.000000 1.000000 0.852444 0.124017 0.393566
-hat -0.018621 0.517901 0.000352 1.000000 0.000000 1.000000 0.841230 0.135573 0.368794
+$ mlr --opprint put '$x2=$x*$x; $xy=$x*$y; $y2=$y**2' then stats2 -a linreg-ols,r2 -f x,y,y,y,xy,y2 -g a data/medium
+a   x_y_ols_m x_y_ols_b x_y_r2   y_y_ols_m y_y_ols_b y_y_r2   xy_y2_ols_m xy_y2_ols_b xy_y2_r2
+pan 0.017026  0.500403  0.000287 1.000000  0.000000  1.000000 0.878132    0.119082    0.417498
+eks 0.040780  0.481402  0.001646 1.000000  0.000000  1.000000 0.897873    0.107341    0.455632
+wye -0.039153 0.525510  0.001505 1.000000  0.000000  1.000000 0.853832    0.126745    0.389917
+zee 0.002781  0.504307  0.000008 1.000000  0.000000  1.000000 0.852444    0.124017    0.393566
+hat -0.018621 0.517901  0.000352 1.000000  0.000000  1.000000 0.841230    0.135573    0.368794
 

@@ -1176,16 +1176,16 @@ distributed on the unit interval. Here we remove half the data and fit a line to mlr filter '($x<.5 && $y<.5) || ($x>.5 && $y>.5)' data/medium > data/medium-squares -mlr --ofs newline stats2 -a linreg -f x,y data/medium-squares -x_y_m=0.764675 -x_y_b=0.124841 +mlr --ofs newline stats2 -a linreg-ols -f x,y data/medium-squares +x_y_ols_m=0.764675 +x_y_ols_b=0.124841 -# Set x_y_m and x_y_b as shell variables -eval $(mlr --ofs newline stats2 -a linreg -f x,y data/medium-squares) +# Set x_y_ols_m and x_y_ols_b as shell variables +eval $(mlr --ofs newline stats2 -a linreg-ols -f x,y data/medium-squares) # In addition to x and y, make a new yfit which is the line fit. Plot using your favorite tool. -mlr --onidx put '$yfit='$x_y_m'*$x+'$x_y_b then cut -x -f a,b,i data/medium-squares \ - | pgr -p -title 'linreg example' +mlr --onidx put '$yfit='$x_y_ols_m'*$x+'$x_y_ols_b then cut -x -f a,b,i data/medium-squares \ + | pgr -p -title 'linreg-ols example'