我有一个体面的大小数据集(大约18,000行)。我有两个要制表的变量,一个采用多个字符串值,第二个采用4个值。我想按4个类别将字符串值制成表格。我需要这些分类。我已经尝试了几个命令,包括tabsort
,它可以工作,但前提是我将它使用的行数限制在前603个(至少按照当前排序的方式)。如果行数大于此数,那么我得到的r(134)
错误表示值太多。还有什么要做的吗?我的目标是创建一个包含最常用单词的表并将其导出到LaTeX。尝试在像R这样的事情上做这件事要容易得多吗?
答案 0 :(得分:3)
以下单行方式,来自SSC的contract
和texsave
:
/* Fake Data */
set more off
clear
set matsize 5000
set seed 12345
set obs 1000
gen x = string(rnormal())
expand mod(_n,10)
gen y = mod(_n,4)
/* Collapse Data to Get Frequencies for Each x-y Cell */
preserve
contract x y, freq(N)
reshape wide N, i(x) j(y)
forvalues v=0/3 {
lab var N`v' "`v'" // need this for labeling
replace N`v'=0 if missing(N`v')
}
egen T = rowtotal(N*)
gsort -T x // sort by occurrence
keep if T > 0 // set occurrence threshold
capture ssc install texsave
texsave x N0 N1 N2 N3 using "tab_x_y.tex", varlabel replace title("tab x y")
restore
/* Check Calculations */
type "tab_x_y.tex"
tab x y, rowsort