asdocx: Export from Stata to Word, Excel, LaTeX & HTML › Forums › asdocx Forum › Tabulate without reporting row/column percent
Tagged: tabulate empty categories
-
AuthorPosts
-
When using tabulate with row/column sort, I find that percentages are always reported.
Is there a way to suppress this, and report only the frequencies?sysuse auto asdocx tab rep78 foreign, rowsort colsort
You can get rid of any column or row using the capability of flexmat. See this example
* First create the full table asdocx tab rep78 foreign, rowsort colsort replace Tabulation of rep78 foreign 0 |1 2 3 4 ----+----------------------------------------------------------------------------- 1 | Repair record 1978 Car origin ----+----------------------------------------------------------------------------- 2 | 1 Domestic Foreign Total 3 |3 27 3 30 4 | 90 10 100 5 | 56.25 14.286 43.478 6 |4 9 9 18 7 | 50 50 100 8 | 18.75 42.857 26.087 9 |5 2 9 11 10 | 18.182 81.818 100 11 | 4.167 42.857 15.942 12 |2 8 0 8 13 | 100 0 100 14 | 16.667 0 11.594 15 |1 2 0 2 16 | 100 0 100 17 | 4.167 0 2.899 18 | Total 48 21 69 19 | 69.565 30.435 100 20 | 100 100 100 ---------------------------------------------------------------------------------- Click to Open File: C:\temp\MyFile.docx * The flexmat table shows rows and columns numbers for easy identification ** drop the desired rows . flexmat droprow, row(4,5,7,8,10,11,13,14,16,17,19,20) Tabulation of rep78 foreign 0 |1 2 3 4 ----+------------------------------------------------------------------------------------------------------- 1 | Repair ~1978 Car origin ----+------------------------------------------------------------------------------------------------------- 2 | Domestic Foreign Total 3 |3 27 3 30 4 |4 9 9 18 5 |5 2 9 11 6 |2 8 0 8 7 |1 2 0 2 8 | Total 48 21 69 ------------------------------------------------------------------------------------------------------------ * Now export the results . asdocx export
This is really useful and I actually need something like this now.
This approach only seem work if using the replace option, but I am creating a report of descriptive statistics by using collect mode so I need to run the code and only append the final table in the report.
I use the following code;
asdocx tab skoleid s_3 if skoleid ~=11, rowsort
which gives me:
Tabulation of skoleid s_3 0 |1 2 3 4 ----+----------------------------------------------------------------------------- 1 | skoleid s_3 ----+----------------------------------------------------------------------------- 2 | 1 Nej Ja Total 3 |Tåsingeskolen 77 51 128 4 | 60.156 39.844 100 5 |Thurø Skole 62 25 87 6 | 71.264 28.736 100 7 |Stokkebækskolen 38 36 74 8 | 51.351 48.649 100 9 |Issø-skolen 34 25 59 10 | 57.627 42.373 100 11 |Tved Skole 31 27 58 12 | 53.448 46.552 100 13 |Skårup Skole 28 26 54 14 | 51.852 48.148 100 15 |Rantzausminde Skole 30 14 44 16 | 68.182 31.818 100 17 | Total 300 204 504 18 | 59.524 40.476 100 ----------------------------------------------------------------------------------
and then
flexmat droprow, row(3,5,7,9,11,13,15)
which gives me:Tabulation of skoleid s_3 0 |1 2 3 4 ----+------------------------------------------------------------------------------------------------------------- 1 |\vline skoleid \qc \hmerge_3 s_3 ----+------------------------------------------------------------------------------------------------------------- 2 |\rowheader \vmerge_1 Nej Ja \hline Total 3 | 60.156 39.844 100 4 | 71.264 28.736 100 5 | 51.351 48.649 100 6 | 57.627 42.373 100 7 | 53.448 46.552 100 8 | 51.852 48.148 100 9 | 68.182 31.818 100 10 |\hline Total 300 204 504 11 | 59.524 40.476 100 ------------------------------------------------------------------------------------------------------------------
The value labels of
skoleid
in column 1 disappears because these are situated in the the rows that I am dropping with flexmat. Some way to resolve this?I would also like to give names to the column header. I would like to add the total N of each category of variable
skoleid
before column 2.
In the final table I would like to name column 1 “skole”, column 2 “N”, column 3 “Nej”, column 4 “Ja”, and column 5 “Total”.If you can help this would be great! Thank you so much.
Turns out that
rowsort
andcolsort
options in Stata generate frequencies, without percentages. To make the asdocx output at par with that of the Stata’s output, I have now made some changes to asdocx. Therefore, these options no longer generate percentages. See the following exampleasdocx_update sysuse auto, clear * using rowsort and colsort options asdocx tab rep78 foreign , rowsort colsort replace Tabulation of rep78 foreign 0 |1 2 3 4 ----+----------------------------------------------------------------------------- 1 | Repair Record 1978 Car type ----+----------------------------------------------------------------------------- 2 | 1 Domestic Foreign Total 3 |3 27 3 30 4 |4 9 9 18 5 |5 2 9 11 6 |2 8 0 8 7 |1 2 0 2 8 | Total 48 21 69 ----------------------------------------------------------------------------------
@Rune Lomholt
If you want to report just the percentages, you can use thenofreq
optionasdocx tab rep78 foreign , rowsort nofreq replace Tabulation of rep78 foreign 0 |1 2 3 4 ----+----------------------------------------------------------------------------- 1 | Repair record 1978 Car origin ----+----------------------------------------------------------------------------- 2 | 1 Domestic Foreign Total 3 |3 90 10 100 4 |4 50 50 100 5 |5 18.182 81.818 100 6 |2 100 0 100 7 |1 100 0 100 8 | Total 69.565 30.435 100 ----------------------------------------------------------------------------------
Is it possible that this part is not updated?
I run the exactly same code and I still get percentages:asdocx_update
sysuse auto, clear* using rowsort and colsort options
asdocx tab rep78 foreign , rowsort colsort replace`
. * using rowsort and colsort options
. asdocx tab rep78 foreign , rowsort colsort replaceTabulation of rep78 foreign
0 |1 2 3 4
—-+—————————————————————————–
1 | Repair Record 1978 Car type
—-+—————————————————————————–
2 | 1 Domestic Foreign Total
3 |3 27 3 30
4 | 90 10 100
5 |4 9 9 18
6 | 50 50 100
7 |5 2 9 11
8 | 18.182 81.818 100
9 |2 8 0 8
10 | 100 0 100
11 |1 2 0 2
12 | 100 0 100
13 | Total 48 21 69
14 | 69.565 30.435 100
———————————————————————————-You are right. Please update it now.
Here I have another one related to the tabulate command:
Is it possible to export statistics using
asdocx tab var, title()
and still show empty categories, but without treating missing values as values when calculating percentages. This is, if a particular response category has zero observations, is shown as 0 frequency, zero percentage and the appropriate cumulative percentage according to its place in the table… But missing values are still now shown as normal.I have found this community contributed command
ssc desc fre
Which allows what I am looking for, when using the codefre var, all include(1 2 3 4) novalue nomissing
. Looks like this:Freq. Percent Cum. Slet ikke 0 0.00 0.00 I lav grad 0 0.00 0.00 Hverken/eller 1 6.25 6.25 I nogen grad 2 12.50 18.75 I høj grad 13 81.25 100.00 Total 16 100.00
Maybe this could be supported by asdocx? Either by supporting this command or extending the capabilities of asdocx with the regular
tab
command?
I now it might sounds odd wanting to report empty categories, since they do not exist in a statistical sense.
But I use these command for making descriptive statistics reports were people who don’t know a first thing about statistics has to read frequency tables, and they always ask “why is the scale different in this item?” which is really annoying. Therfore, i prefer just to include empty categories to make it transparent.Thank you for reading this post!
I agree with Rune that an option to also ‘report’ empty categories is very usefull because it explains to the reader that such categories are present as such but not present in the then current data set.
Best,
Eric -
AuthorPosts
- You must be logged in to reply to this topic.