I am trying to get percents from a tabstat table. I know that using tabulate command is much more easy but my task is using a tabstat command.
I have half sucess only I get percents for half table:
I am using tabstatmat (SSC). Example:
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input str18 make int(price mpg rep78) float headroom int(trunk weight length turn displacement) float gear_ratio byte foreign "AMC Concord" 4099 22 3 2.5 11 2930 186 40 121 3.58 0 "AMC Pacer" 4749 17 3 3 11 3350 173 40 258 2.53 0 "AMC Spirit" 3799 22 . 3 12 2640 168 35 121 3.08 0 "Buick Century" 4816 20 3 4.5 16 3250 196 40 196 2.93 0 "Buick Electra" 7827 15 4 4 20 4080 222 43 350 2.41 0 "Buick LeSabre" 5788 18 3 4 21 3670 218 43 231 2.73 0 "Buick Opel" 4453 26 . 3 10 2230 170 34 304 2.87 0 "Buick Regal" 5189 20 3 2 16 3280 200 42 196 2.93 0 "Buick Riviera" 10372 16 3 3.5 17 3880 207 43 231 2.93 0 "Buick Skylark" 4082 19 3 3.5 13 3400 200 42 231 3.08 0 "Cad. Deville" 11385 14 3 4 20 4330 221 44 425 2.28 0 "Cad. Eldorado" 14500 14 2 3.5 16 3900 204 43 350 2.19 0 "Cad. Seville" 15906 21 3 3 13 4290 204 45 350 2.24 0 "Chev. Chevette" 3299 29 3 2.5 9 2110 163 34 231 2.93 0 "Chev. Impala" 5705 16 4 4 20 3690 212 43 250 2.56 0 "Chev. Malibu" 4504 22 3 3.5 17 3180 193 31 200 2.73 0 "Chev. Monte Carlo" 5104 22 2 2 16 3220 200 41 200 2.73 0 "Chev. Monza" 3667 24 2 2 7 2750 179 40 151 2.73 0 "Chev. Nova" 3955 19 3 3.5 13 3430 197 43 250 2.56 0 "Dodge Colt" 3984 30 5 2 8 2120 163 35 98 3.54 0 "Dodge Diplomat" 4010 18 2 4 17 3600 206 46 318 2.47 0 "Dodge Magnum" 5886 16 2 4 17 3600 206 46 318 2.47 0 "Dodge St. Regis" 6342 17 2 4.5 21 3740 220 46 225 2.94 0 "Ford Fiesta" 4389 28 4 1.5 9 1800 147 33 98 3.15 0 "Ford Mustang" 4187 21 3 2 10 2650 179 43 140 3.08 0 "Linc. Continental" 11497 12 3 3.5 22 4840 233 51 400 2.47 0 "Linc. Mark V" 13594 12 3 2.5 18 4720 230 48 400 2.47 0 "Linc. Versailles" 13466 14 3 3.5 15 3830 201 41 302 2.47 0 "Merc. Bobcat" 3829 22 4 3 9 2580 169 39 140 2.73 0 "Merc. Cougar" 5379 14 4 3.5 16 4060 221 48 302 2.75 0 "Merc. Marquis" 6165 15 3 3.5 23 3720 212 44 302 2.26 0 "Merc. Monarch" 4516 18 3 3 15 3370 198 41 250 2.43 0 "Merc. XR-7" 6303 14 4 3 16 4130 217 45 302 2.75 0 "Merc. Zephyr" 3291 20 3 3.5 17 2830 195 43 140 3.08 0 "Olds 98" 8814 21 4 4 20 4060 220 43 350 2.41 0 "Olds Cutl Supr" 5172 19 3 2 16 3310 198 42 231 2.93 0 "Olds Cutlass" 4733 19 3 4.5 16 3300 198 42 231 2.93 0 "Olds Delta 88" 4890 18 4 4 20 3690 218 42 231 2.73 0 "Olds Omega" 4181 19 3 4.5 14 3370 200 43 231 3.08 0 "Olds Starfire" 4195 24 1 2 10 2730 180 40 151 2.73 0 "Olds Toronado" 10371 16 3 3.5 17 4030 206 43 350 2.41 0 "Plym. Arrow" 4647 28 3 2 11 3260 170 37 156 3.05 0 "Plym. Champ" 4425 34 5 2.5 11 1800 157 37 86 2.97 0 "Plym. Horizon" 4482 25 3 4 17 2200 165 36 105 3.37 0 "Plym. Sapporo" 6486 26 . 1.5 8 2520 182 38 119 3.54 0 "Plym. Volare" 4060 18 2 5 16 3330 201 44 225 3.23 0 "Pont. Catalina" 5798 18 4 4 20 3700 214 42 231 2.73 0 "Pont. Firebird" 4934 18 1 1.5 7 3470 198 42 231 3.08 0 "Pont. Grand Prix" 5222 19 3 2 16 3210 201 45 231 2.93 0 "Pont. Le Mans" 4723 19 3 3.5 17 3200 199 40 231 2.93 0 "Pont. Phoenix" 4424 19 . 3.5 13 3420 203 43 231 3.08 0 "Pont. Sunbird" 4172 24 2 2 7 2690 179 41 151 2.73 0 "Audi 5000" 9690 17 5 3 15 2830 189 37 131 3.2 1 "Audi Fox" 6295 23 3 2.5 11 2070 174 36 97 3.7 1 "BMW 320i" 9735 25 4 2.5 12 2650 177 34 121 3.64 1 "Datsun 200" 6229 23 4 1.5 6 2370 170 35 119 3.89 1 "Datsun 210" 4589 35 5 2 8 2020 165 32 85 3.7 1 "Datsun 510" 5079 24 4 2.5 8 2280 170 34 119 3.54 1 "Datsun 810" 8129 21 4 2.5 8 2750 184 38 146 3.55 1 "Fiat Strada" 4296 21 3 2.5 16 2130 161 36 105 3.37 1 "Honda Accord" 5799 25 5 3 10 2240 172 36 107 3.05 1 "Honda Civic" 4499 28 4 2.5 5 1760 149 34 91 3.3 1 "Mazda GLC" 3995 30 4 3.5 11 1980 154 33 86 3.73 1 "Peugeot 604" 12990 14 . 3.5 14 3420 192 38 163 3.58 1 "Renault Le Car" 3895 26 3 3 10 1830 142 34 79 3.72 1 "Subaru" 3798 35 5 2.5 11 2050 164 36 97 3.81 1 "Toyota Celica" 5899 18 5 2.5 14 2410 174 36 134 3.06 1 "Toyota Corolla" 3748 31 5 3 9 2200 165 35 97 3.21 1 "Toyota Corona" 5719 18 5 2 11 2670 175 36 134 3.05 1 "VW Dasher" 7140 23 4 2.5 12 2160 172 36 97 3.74 1 "VW Diesel" 5397 41 5 3 15 2040 155 35 90 3.78 1 "VW Rabbit" 4697 25 4 3 15 1930 155 35 89 3.78 1 "VW Scirocco" 6850 25 4 2 16 1990 156 36 97 3.78 1 "Volvo 260" 11995 17 5 2.5 14 3170 193 37 163 2.98 1 end label values foreign origin label def origin 0 "Domestic", modify label def origin 1 "Foreign", modify tab foreign rep78, col matcell(col) | Repair Record 1978 Car type | 1 2 3 4 5 | Total -----------+-------------------------------------------------------+---------- Domestic | 2 8 27 9 2 | 48 | 100.00 100.00 90.00 50.00 18.18 | 69.57 -----------+-------------------------------------------------------+---------- Foreign | 0 0 3 9 9 | 21 | 0.00 0.00 10.00 50.00 81.82 | 30.43 -----------+-------------------------------------------------------+---------- Total | 2 8 30 18 11 | 69 | 100.00 100.00 100.00 100.00 100.00 | 100.00 qui tab foreign rep78, matcell(col) mata : st_matrix("totalcol", colsum(st_matrix("col"))) egen both= group(foreign rep78 ) tabstat rep78, s(n) by(both) save tabstatmat x, nototal local maxcol = rowsof(x) forvalues k=1(1)`maxcol' { local frec`k' `=x[`k',1]' local cc`k' `=totalcol[1,`k']' local porcent`k': di %3.2f = (`frec`k''/`cc`k'')*100 di "`frec`k''" di "`porcent`k''" } 2 100.00 8 100.00 27 90.00 9 50.00 2 18.18 3 . 9 . 9 .
0 Response to Get percents using tabstat
Post a Comment