我想将以下结果放入Stata并进行一些分析:
有什么方法可以在Stata中为该数据生成数据集,以便有适当数量的观察值,从而允许我运行tabodds
或类似操作?
也许这就是你要寻找的。
clear
set obs 6
gen region = word("`c(ALPHA)'", ceil(_n / 2))
bysort region : gen control = _n - 1
label define casecontrol 1 "Control" 0 "Case"
label values control casecontrol
local expandlist 708 1392 946 2086 328 996
gen exp = real(word("`expandlist'", _n))
expand exp
drop exp
tab region control
结果:
. tab region control
| control
region | Case Control | Total
-----------+----------------------+----------
A | 708 1,392 | 2,100
B | 946 2,086 | 3,032
C | 328 996 | 1,324
-----------+----------------------+----------
Total | 1,982 4,474 | 6,456
非常感谢@Wouter,这很有帮助,我能够运行卡方趋势测试。但是,我正在努力将其应用于其他情况-我将如何使其适用于2x2表(二进制变量,而不是3个区域)?我尝试将bysort区域更改为_n / 2或_n-2,但这显然是不对的。
最重要的是设置正确数量的初始观察值,每个变量组合一个。因此2x2意味着
set obs 4
。只需进行更改就可以了。如果您想要一个0 1指标变量而不是AB区域,则可以更改gen region = word("`c(ALPHA)'", ceil(_n / 2))
为gen region = mod(_n, 2)