static void prep_spreadsheet (GtkWidget *widget, dialog_t *dlg) { GtkWidget *parent = edit_dialog_get_window(dlg); const gchar *buf = edit_dialog_get_text(dlg); int t; if (buf == NULL || gui_validate_varname(buf, GRETL_TYPE_SERIES, parent)) { edit_dialog_reset(dlg); return; } dataset->varname[1][0] = '\0'; strncat(dataset->varname[1], buf, VNAMELEN - 1); edit_dialog_close(dlg); /* blank out the auto "index" variable */ for (t=0; t<dataset->n; t++) { dataset->Z[1][t] = NADBL; } series_set_label(dataset, 1, ""); show_spreadsheet(SHEET_NEW_DATASET); }
static int wf1_read_history (FILE *fp, unsigned pos, DATASET *dset, int i) { char *htxt; unsigned hpos; int len, err = 0; #if EVDEBUG fseek(fp, pos, SEEK_SET); fprintf(stderr, "first short: %d\n", read_short(fp, &err)); #endif fseek(fp, pos + 2, SEEK_SET); len = read_int(fp, &err); if (err) { return 1; } #if EVDEBUG fprintf(stderr, "history length: %d\n", len); fprintf(stderr, "next int: %d\n", read_int(fp, &err)); #endif fseek(fp, pos + 10, SEEK_SET); hpos = read_unsigned(fp, &err); if (err) { return 1; } htxt = calloc(len + 1, 1); if (htxt != NULL) { fseek(fp, hpos, SEEK_SET); if (fread(htxt, 1, len, fp) == len) { series_set_label(dset, i, htxt); } free(htxt); } return 0; }
static int pca_save_components (VMatrix *cmat, gretl_matrix *E, gretl_matrix *C, DATASET *dset, int nsave, gretlopt opt) { int save_all = (opt & OPT_A); double x, **sZ = NULL; int m = 0, v = dset->v; int k = cmat->dim; int i, j, t, vi; int err = 0; if (save_all) { m = k; } else if (nsave > 0) { m = nsave > k ? k : nsave; } else { for (i=0; E->val[i] > 1.0; i++) { m++; } } err = dataset_add_series(dset, m); if (!err) { /* construct standardized versions of all variables */ sZ = doubles_array_new(k, dset->n); if (sZ == NULL) { err = E_ALLOC; } else { for (i=0; i<k && !err; i++) { vi = cmat->list[i+1]; err = standardize(sZ[i], dset->Z[vi], dset->n); } } } if (!err) { gchar *label; double load; for (i=0; i<m; i++) { vi = v + i; sprintf(dset->varname[vi], "PC%d", i+1); make_varname_unique(dset->varname[vi], vi, dset); label = g_strdup_printf(_("Component with eigenvalue = %.4f"), E->val[i]); series_set_label(dset, vi, label); g_free(label); for (t=0; t<dset->n; t++) { if (t < dset->t1 || t > dset->t2) { dset->Z[vi][t] = NADBL; continue; } dset->Z[vi][t] = 0.0; for (j=0; j<k; j++) { x = sZ[j][t]; if (na(x)) { dset->Z[vi][t] = NADBL; break; } else { load = gretl_matrix_get(C, j, i); dset->Z[vi][t] += load * x; } } } } } doubles_array_free(sZ, k); return err; }