I would like to load the data from my GAUSS dataset and have it create a GAUSS level variable for each of the variables in my dataset. For example, if I have a GAUSS dataset containing the variables GDP, GNP and Inflation, I would like to have a function that creates each of these variables in my workspace rather than just loading all the variables as one matrix.
1 Answer
0
accepted
Here is a procedure that will accomplish what you would like, with an example:
//Load all variables into the GAUSS workspace //To run this example using the example dataset, //freqdata.dat, your current working directory //must be the GAUSS examples directory loadDataVars("freqdata.dat"); proc (0) = loadDataVars(fname); local x, r, fh, vnames,i, ret; //Open the dataset and read in variable names open fh = ^fname for read; vnames = getnamef(fh); //read all rows of dataset into 'x' at once r = rowsf(fh); x = readr(fh, r); //loop through each variable in the dataset //and create a global variable for each //variable in the dataset for i(1, cols(x), 1); ret = varput(x[.,i], vnames[i]); endfor; //Optional, create a global 'x' containing //all observations of all variables ret = varput(x, "x"); //Close the dataset file ret = close(fh); endp;
Your Answer
1 Answer
0
accepted
Here is a procedure that will accomplish what you would like, with an example:
//Load all variables into the GAUSS workspace //To run this example using the example dataset, //freqdata.dat, your current working directory //must be the GAUSS examples directory loadDataVars("freqdata.dat"); proc (0) = loadDataVars(fname); local x, r, fh, vnames,i, ret; //Open the dataset and read in variable names open fh = ^fname for read; vnames = getnamef(fh); //read all rows of dataset into 'x' at once r = rowsf(fh); x = readr(fh, r); //loop through each variable in the dataset //and create a global variable for each //variable in the dataset for i(1, cols(x), 1); ret = varput(x[.,i], vnames[i]); endfor; //Optional, create a global 'x' containing //all observations of all variables ret = varput(x, "x"); //Close the dataset file ret = close(fh); endp;