官术网_书友最值得收藏!

Stata統計分析從入門到精通

1.4 Stata 16.0運算符與函數

下載資源:\video\第1章\…

下載資源:\sample\第1章\數據1

1.4.1 Stata 16.0運算符

在Stata 16.0中,我們可以使用的算術運算符、關系運算符和邏輯運算符分別如表1.1~表1.3所示。

表1.1 算術運算符

表1.2 關系運算符

表1.3 邏輯運算符

注意

各類運算符的優先順序是:!(或~),^,-(負號),/,*,-(減號),+,!=(或~=),>,<,<=,>=,==,&,|。如果用戶難以記住運算符的優先順序,可以采用嵌套括號的形式獲取運算優先級,最里層括號內的表達式將會最先被計算。

下面使用“數據1”數據文件作為進行相應運算的示例。

1.算術運算

在命令窗口中依次輸入:

gen newX7=X7+1 (本命令的含義是生成newX7變量,其值為X7加1)

list X7 newX7 in 1/5 (本命令的含義是列出第1~5個樣本觀測值X7和newX7的值,可以發現newX7的值都是對應X7的值加1)

上述命令的執行結果如圖1.33所示。

圖1.33 第1~5個樣本觀測值X7和newX7的值

然后輸入:

drop newX7(本命令的含義是刪除已生成的newX7變量)

drop命令是用來刪除某些變量和觀測值的,基本命令如下:

· 刪除變量: drop varlist。

· 刪除樣本觀測值:drop if exp。

· 刪除一定范圍內的樣本觀測值:drop in range [if exp]。

與drop命令相對應的是keep命令,用來保留某些變量和觀測值,基本命令如下:

· 保留變量: keep varlist。

· 保留樣本觀測值:keep if exp。

· 保留一定范圍內的樣本觀測值:keep in range [if exp]。

特別提示

使用drop命令刪除變量和觀測值、keep命令保留變量和觀測值都是不可逆的。一旦用戶排除了變量和觀測值,就不能再把它們讀取回來。用戶需要返回原始數據集并重新讀取。所以,用戶應該盡量考慮使用if或in臨時選擇子集,而不是應用drop或keep進行子集分析。這通常是最好的策略。

2.數值運算

數值計算的命令為“di”,在命令窗口中依次輸入:

di 5+3

di 5-3

di 7^2

di 7/2

di(6+7^(5-3))/sqrt(5*5)

即可出現如圖1.34所示的結果。

3.字符運算

圖1.34 數值計算結果

字符運算的命令為“scalar”,在命令窗口中依次輸入:

scalar X="中華"+"人民共和國"(本命令的含義是生成字符X,將“中華”和“人民共和國”連在一起,注意引號必須是半角和英文模式)

scalar list X(本命令的含義是列出生成的字符X,注意列出字符的命令是scalar list)

上述命令的執行結果為:X=中華人民共和國。

然后我們輸入:

scalar Y=X+"萬歲"(本命令的含義是生成字符Y,將前面生成的X和"萬歲"連在一起,需要注意的是X不再加引號)

scalar list Y(本命令的含義是列出生成的字符Y)

上述命令的執行結果為:Y = 中華人民共和國萬歲。

4.關系運算

示例關系運算。在命令窗口中依次輸入如下的關系運算命令:

di 9==8

di 4>=2

即可出現如圖1.35所示的結果。

我們可以靈活運用關系運算針對分類變量創建虛擬變量。接續上例,如果在命令窗口中依次輸入:

gen xingbienew1=(xingbie==1)

gen xingbienew2=(xingbie==2)

gen xingbienew3=(xingbie!=2)

gen xingbienew4=(xingbie~=2)

list xingbie xingbienew1 xingbienew2 xingbienew3 xingbienew4 in 1/5

即可出現如圖1.36所示的執行結果。

圖1.35 關系運算示例的執行結果

圖1.36 針對分類變量創建虛擬變量

可以發現,xingbienew1、xingbienew3為xingbie==1時的虛擬變量,xingbienew2、xingbienew4為xingbie==2時的虛擬變量。

5.邏輯運算

示例邏輯運算。在命令窗口中輸入:

list Y1 Y2 X1 X2 if Y1>=4&X1<4|Y2>=3&X2<=5(本命令的含義是列出符合條件的樣本Y1、Y2、X1、X2的值,條件一是Y1大于等于4且X1小于等于4,條件二是Y2大于等于3且X2小于等于5,兩個條件符合其一即可)。

即可出現如圖1.37所示的執行結果。

1.4.2 Stata 16.0函數

圖1.37 邏輯運算示例的執行結果

函數用于表達式中,表達式在Stata命令中縮寫為exp,可以在任何表達式中調用函數。函數的參數可以是包括其他函數在內的任何表達式。函數的參數用圓括號括起來,如果有多個參數,則參數之間用逗號分隔開。Stata 16.0共有9大類函數,分別是日期和時間函數、數學函數、矩陣函數、編程函數、隨機數函數、時間序列函數、統計函數、字符串函數、三角函數。具體的函數類型以及相關的介紹,用戶可以通過在命令窗口中輸入“help function”進行查詢,常見的函數如表1.4所示。

表1.4 常見的函數

下面繼續使用“數據1”數據文件作為計算示例,在命令窗口中依次輸入:

di sqrt(49) (求49的平方根,結果為10)

di abs(-10) (求-10的絕對值,結果為10)

di ln(exp(9)) (先求e的9次方,再取對數,結果為9)

di int(9.22) (對9.22取整數,結果為9)

di int(-9.22) (對-9.22取整數,結果為-9)

di round(-9.22) (對-9.22四舍五入,結果為-9)

di round(-9.22,.1) (對-9.22四舍五入至小數點后一位,結果為-9.2)

下面結合函數來看兩個重要命令 gen和egen的區別,打開“數據1”文件,在命令窗口中依次輸入:

gen Y2new1=sum(Y2) (生成變量Y2new1,將變量Y2樣本觀測值匯總求和)

egen Y2new2=sum(Y2) (生成變量Y2new2,將變量Y2所有樣本觀測值匯總求和)

list Y2 Y2new1 Y2new2 in 1/10 (列出Y2、Y2new1、Y2new2前10個樣本觀測值)

得到如圖1.38所示的執行結果。

圖1.38 Y2、Y2new1、Y2new2前10個樣本觀測值

從上面的執行結果可知,gen命令生成的變量值是一個變動的值,egen命令生成的新變量值往往是一個常數。

主站蜘蛛池模板: 罗山县| 岳阳市| 富顺县| 扶余县| 绥中县| 林甸县| 武夷山市| 呼玛县| 九龙城区| 怀集县| 仁寿县| 鄂托克前旗| 中西区| 阿巴嘎旗| 边坝县| 房产| 库尔勒市| 临高县| 吉林省| 禹城市| 改则县| 长春市| 安阳县| 柞水县| 都兰县| 晋宁县| 康保县| 沐川县| 河源市| 衢州市| 澄江县| 永靖县| 沅陵县| 潮州市| 大姚县| 柯坪县| 北安市| 巴中市| 顺昌县| 兰溪市| 桂林市|