2016-07-04 2 views
-1

Ich habe zwei Matrizen, Fälle und Prozentsätze. Ich möchte beide kombinieren mit den Spalten zwischen den beiden Fällen heißt [c1] Prozent [c1] Fälle [c2] Prozent [c2] ...Joining zwei Matrizen, eine mit Zahlen und die anderen Prozentsätze

tab year region if sex==1, matcell(cases) 
tab year region, matcell(total) 
mata:st_matrix("percent", 100 * st_matrix("cases"):/st_matrix("total")) 


matrix list cases 

     c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 
r1 1313 1289 1121 1176 1176 1150 1190 1184 1042 940 
r2 340 359 357 366 383 332 406 367 352 272 
r3 260 246 266 265 270 259 309 306 266 283 
r4 271 267 293 277 317 312 296 285 265 253 
r5 218 249 246 213 264 255 247 221 229 220 
r6 215 202 157 202 200 204 220 183 176 180 
r7 178 193 218 199 194 195 201 187 172 159 
r8 127 111 107 130 133 99 142 143 131 114 
r9 64 68 85 74 70 60 59 70 76 61 


. matrix list percent, format(%2.1f) 

percent[9,10] 
     c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 
r1 70.1 71.2 67.3 67.2 66.9 71.5 72.6 72.5 74.9 73.2 
r2 65.3 65.2 69.1 64.4 68.0 70.5 72.0 64.8 66.4 64.9 
r3 74.7 73.7 74.7 69.2 68.9 67.6 70.5 72.3 79.4 80.9 
r4 66.3 72.6 72.9 74.9 72.7 73.8 72.2 73.3 74.9 71.7 
r5 68.8 67.1 66.0 63.6 67.2 67.1 65.2 67.4 68.6 73.8 
r6 73.1 72.9 69.2 63.7 67.6 68.0 72.4 68.8 74.9 78.9 
r7 64.5 60.3 69.9 70.6 69.3 78.3 72.3 65.8 71.4 71.3 
r8 66.1 64.2 63.3 74.7 69.3 56.9 70.6 70.1 63.9 57.9 
r9 77.1 73.9 70.2 74.0 71.4 73.2 81.9 72.9 87.4 74.4 
abwechselnd

Wie kombiniere ich sowohl die Matrizen?

zur Zeit habe ich versucht: matrix final=cases, percent aber es bringt sie nur nebeneinander? Ich will es so, dass jede Spalte zwischen Fällen und Prozent wechselt.

Ich werde dann putexcel Befehl verwenden, um sie in eine bereits formatierte Tabelle mit Spalten von Fällen und Prozentsätzen zu setzen.

+0

Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackoverflow.com/rooms/116454/discussion-between-exodia16-and-nick-cox). – Exodia16

+0

Wie in früheren Threads bemerke ich hier eine Abwesenheit von reproduzierbaren Beispielen. Siehe http://stackoverflow.com/help/mcve für gute Übungen zu SO und http://www.statalist.org/forums/help für Stata-spezifische Ratschläge, vieles von dem, was mit offensichtlichen Auslassungen oder Änderungen an Stata-Fragen einhergeht . Gute Fragen machen Antworten wahrscheinlicher; Vielbeschäftigte Menschen können manchmal angeben, dass eine Frage verbesserungswürdig ist, aber oft ignorieren sie eine Frage einfach, weil sie zu viel Arbeit benötigen, um ein Beispiel und einen Code zu erstellen. –

Antwort

1

Lassen Sie mich zunächst Nick Cox's Kommentare unterstützen.

Das Problem ist, es gibt keine einfache Lösung für die Kombination von Matrizen, wie Sie es wünschen. Nichtsdestoweniger ist es einfach, die gewünschten Ergebnisse zu erzielen, indem Sie einen sehr anderen Weg wählen als den, den Sie skizziert haben. Es macht keinen Spaß, einen Aufsatz zu schreiben, der die Technik in natürlicher Sprache beschreibt; es ist viel einfacher, es mit Code zu demonstrieren, wie ich es unten tue, und wie ich es erwarte, wäre Nick dazu geneigt gewesen.

Wenn Sie kein minimales, vollständiges und überprüfbares Beispiel angeben, wie es in dem von Ihnen bereitgestellten Link beschrieben wird, haben Sie andere davon abgehalten, Ihnen zu zeigen, wo Sie von den Spuren verschwunden sind.

// create a minimal amount of sample data hopefully similar to actual data 
clear 
input year region sex 
2001 1 1 
2001 1 2 
2001 1 2 
2002 1 1 
2002 1 2 
2001 2 1 
2002 2 1 
2002 2 2 
end 
list, clean noobs 
// use collapse to generate summaries equivalent to two tabs 
generate male = sex==1 
collapse (count) total=male (sum) cases=male, by(year region) 
list, clean noobs 
generate percent = 100*cases/total 
keep year region total percent 
// flatten and interleave the columns 
reshape wide total percent, i(year) j(region) 
drop year 
list, clean noobs 
// now use export excel to output, 
// or use mkmat to load into a matrix and use putexcel to output 
+0

Nach der Tatsache, es scheint mir, dass Sie eine [Permutationsmatrix] (https://en.wikipedia.org/wiki/Permutation_matrix) - eine identitätsähnliche Matrix bestehend aus Einsen und Nullen, mit nicht mehr als einer einzigen eine in jeder Reihe und Spalte, die, wenn sie mit Ihrer "Seite an Seite" -Matrix multipliziert wird, eine ähnlich große Matrix mit den Spalten ergibt, die in der Reihenfolge, in der Sie sie wollen, permutiert wurden. Und, bei Gott, da ist es in 'Hilfe [M-1] Permutation. Trotzdem, nicht der beste Weg hierher zu kommen. –