How can I load each variable from a GAUSS dataset and retain the variable names?

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;

You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.