I'm looking to create a descriptive statistics table, grouped by experimental condition. The table will describe the control variables where categorical variables are detailed as the aggregate number of observations and percentages and then at each category with the same information. Continuous variables will be detailed as the mean and the standard deviation as follows.
Experimental group 1 Experimental group 2 Total
Age: (Observations), % (Observations), % (Obs.), %
18-25
(Observations), % (Observations), % (Obs.), %
26-35
(Observations), % (Observations), % (Obs.), %
36-45
(Observations), % (Observations), % (Obs.), %
Openness to Experience Mean (SD) Mean (SD) Mean (SD)
So far the code I have is the below but I don't know how to (i) break the categorical variables down (i.dem_age doesn't work), (ii) get the percentage instead of the mean and (iii) how to add a total column.

Code:
bysort condition: outreg2 using table1.doc, replace sum(log) eqkeep(N mean) keep(dem_age dem_gender dem_ethnicity employ_status employ_hiring employ_no_manage employ_managed employ_income sc_autism sc_adhd sc_social no_autism_contact quality_autism no_adhd_contact quality_adhd sc_openness)
Thank you.