2015-02-23 248 views
1

我正在嘗試使用不同的分位數級別創建指示符變量。我正在創建一個包含與分位數對應的類別的變量。對於一個變量,我使用的代碼是使用Stata中定義的分割點創建分位點類別變量

xtile PH_scale = PH, nq(4) 
tab PH_scale, gen(PH_scale_) 

另外,我知道,如果我想用我自己的分割點,而不是默認的(例如,nq(4))我可以用

定義自己的分割點
input class 
xtile PH_scale = PH, cutpoint(class) 

但是有幾個變量我想用不同的方式定義切點。

通常,切點工作爲:

(−∞, x[25] ], (x[25], x[50] ], (x[50], x[75] ], (x[75], +∞) 
where x[25], x[50], and x[75] are, respectively, the 25th, 50th (median), and 75th percentiles 

和塔塔將自動分配編號,以每那些間隔(例如,1到(-∞,X [25]],2到(x [的25],X [50],等等)

不過,我要的是

Assign category 1 to values located in (−∞, x[25] ] AND (x[75], +∞) 
Assign category 2 to values located in (x[25], x[50] ] AND (x[50], x[75] ] 

我希望我解釋我的問題不夠清楚。我不知道我是否可以用做xtile命令可以解決這個問題的方法是受歡迎的。

回答

1

xtile PH_scale = PH, nq(4) 

這是一個易於replace

replace PH_scale = cond(inlist(PH_scale, 1, 4), 1, 2) 

可替代地,創建百分直接

_pctile PH, nq(4) 
gen PH_scale = cond(PH < r(r1) | PH > r(r3), 1, 2) if PH < . 

注意,指示變量被廣泛用值1和0被定義爲那些,但原則是一樣的。

+0

非常感謝! – Chuan 2015-02-24 22:00:08