Матрица 5 на 5 таблиц подсчета частоты `tabulate twoway 'в Stata - PullRequest
1 голос
/ 09 января 2012

Я хотел бы создать сетку 5 на 5 из tabulate twoway таблиц подсчета частоты, как в следующей таблице.

enter image description here

Создать каждую подстолью легкос вложенными циклами foreach, но вывод длинного списка труднее интерпретировать, чем сетку 5 на 5 (и имеет избыточные записи - она ​​обеспечивает обе половины симметричной матрицы).

можно сделать такой стол в Stata?Чтобы быть ясным, я могу выяснить LaTeX позже, я просто заинтересован в получении ясного и краткого вывода на консоль.

Спасибо!Вот некоторый код, который выполняет основы, используя данные auto, но генерирует список вместо матрицы.xtile из пакета egenmore

sysuse auto, clear
global vars price mpg headroom trunk weight
foreach x of global vars {
    egen d_`x' = xtile(`x'), nquantiles(2)
}

* can make diagonal entries
tabulate d_price d_price

* can make off-diagonal entries
tabulate d_price d_mpg

* crude solution that generates list output with redundant entries
foreach x of global vars {
    foreach y of global vars {
        tabulate d_`x' d_`y'
    }
}

1 Ответ

3 голосов
/ 09 января 2012

Я добавил несколько матричных операций в ваш цикл.

tempname col all tabout
foreach x of global vars {
    foreach y of global vars {
        qui tabulate d_`x' d_`y', matcell(`tabout')
        mat colnames `tabout' = `x' `x'
        mat rownames `tabout' = `y' `y'
        mat `col' = (nullmat(`col') \ `tabout' )
    }
    mat `all'= (nullmat(`all') , `col')
    mat drop `col'
}
mat list `all'

Это немного похоже на мою программу с именем meantab, на http://code.google.com/p/kk-adofiles/

...