I have the following procedure
N_Theta = 10;
N_Wage = 30;
string gender = {"M" "W"};
string educ = {"l" "h"};
string labor_st= {"u" "e"};
string marr_st = {"s" "m"};
//// Initial guess for Value Functions
wage_st=1|N_Wage;
love_st=1|N_theta;
pos_FP=ones(40,1);
wa_lo_FP=ones(40,3);// Cols: wages~love~wages_sp
i=1;
for gen (1,2,1);
for edu (1,2,1);
//i=1;
for marr (1,2,1);
if marr==1;//marr=1;
for labor (1,2,1);
if i==1;
pos_FP[i]=wage_st[labor]*love_st[marr];
wa_lo_FP[i,.]=wage_st[labor]~love_st[marr]~1; i=i+1;
pos_FP_st=gender[gen]$+"_"$+marr_st[marr]$+labor_st[labor]$+"_"$+educ[edu];
else;
pos_FP[i]=wage_st[labor]*love_st[marr]+pos_FP[i-1];
wa_lo_FP[i,.]=wage_st[labor]~love_st[marr]~1; i=i+1;
pos_FP_st=pos_FP_st$|gender[gen]$+"_"$+marr_st[marr]$+labor_st[labor]$+"_"$+educ[edu];
endif;
endfor;
endif;
if marr==2;
for labor (1,2,1);
for labor_sp (1,2,1);
for edu_sp (1,2,1);
pos_FP_st=pos_FP_st$|gender[gen]$+"_"$+marr_st[marr]$+labor_st[labor]$+labor_st[labor_sp]$+"_"$+educ[edu]$+educ[edu_sp];
pos_FP[i]=wage_st[labor]*wage_st[labor_sp]*love_st[marr]+pos_FP[i-1];
wa_lo_FP[i,.]=wage_st[labor]~love_st[marr]~wage_st[labor_sp]; i=i+1;
endfor;
endfor;
endfor;
endif;
endfor;
endfor;
endfor;
string label_n=pos_FP_st;
mask = { 0 1 1 1 1};
c = label_n~pos_FP~pos_FP~wa_lo_FP;
call printfmt(c, mask);
What should I do to print pos_FP_st with the other numeric vectors, I have tried a normal print but neither way is working.
Thank you.
3 Answers
0
You should use the sprintf
function.
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
sprintf("%10s %8.4f %8.4f", label, a, b);
apple 1.0000 9.0000 banana 2.0000 10.0000 canteloupe 3.0000 11.0000
0
Great, it worked.
If I want to export that object to excel or latex, how should I do it?
0
Excel
You can use xlsWrite
to write data from GAUSS to an Excel file. However, you might need to write the numeric and string data separately. Something like:
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
fname = "myfile.xlsx";
call xlsWrite(label, fname, "A1");
call xlsWrite(a~b, fname, "B1");
Latex
I'm not sure how you are creating your Latex document, but the "meat" of a table in Latex is usually the data with ampersands as column separators. You could add the ampersands to the sprintf
call from the earlier post like this:
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
// Send results of next print to 'mytextfile.txt'
// 'reset' means overwrite the file if it already exists
output file=mytextfile.txt reset;
// print the table to the output window and the file
print sprintf("%10s & %8.4f & %8.4f\\\\", label, a, b);
// stop sending printed output to the file
output off;
apple & 1.0000 & 9.0000\ banana & 2.0000 & 10.0000\ canteloupe & 3.0000 & 11.0000\
Your Answer
3 Answers
You should use the sprintf
function.
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
sprintf("%10s %8.4f %8.4f", label, a, b);
apple 1.0000 9.0000 banana 2.0000 10.0000 canteloupe 3.0000 11.0000
Great, it worked.
If I want to export that object to excel or latex, how should I do it?
Excel
You can use xlsWrite
to write data from GAUSS to an Excel file. However, you might need to write the numeric and string data separately. Something like:
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
fname = "myfile.xlsx";
call xlsWrite(label, fname, "A1");
call xlsWrite(a~b, fname, "B1");
Latex
I'm not sure how you are creating your Latex document, but the "meat" of a table in Latex is usually the data with ampersands as column separators. You could add the ampersands to the sprintf
call from the earlier post like this:
a = { 1, 2, 3 };
b = { 9, 10, 11 };
label = "apple" $| "banana" $| "canteloupe";
// Send results of next print to 'mytextfile.txt'
// 'reset' means overwrite the file if it already exists
output file=mytextfile.txt reset;
// print the table to the output window and the file
print sprintf("%10s & %8.4f & %8.4f\\\\", label, a, b);
// stop sending printed output to the file
output off;
apple & 1.0000 & 9.0000\ banana & 2.0000 & 10.0000\ canteloupe & 3.0000 & 11.0000\