- Stata統計分析從入門到精通
- 楊維忠 張甜編著
- 1863字
- 2023-09-15 18:21:06
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命令生成的新變量值往往是一個常數。
- MATLAB計算機視覺經典應用
- Microsoft BizTalk Server 2010 Patterns
- COSPLAY的后期藝術:Lightroom+Photoshop修圖技法攻略
- 數字創意大師:Alias二維與三維概念設計工作流淺析
- Illustrator CC平面設計標準教程(微課版)
- 平面設計制作標準教程(微課版 第2版)
- AutoCAD入門教程全掌握
- 7小時精通剪映:短視頻剪輯/調色/特效/字幕(手機版+電腦版)
- Oracle Web Services Manager
- AutoCAD 2016從入門到精通
- 中文版Flash CC動畫制作實用教程
- AutoCAD 2022中文版園林景觀設計從入門到精通
- Flash CS6中文版基礎與實例教程
- 新印象 Cinema 4D+Octane Render建模/材質/燈光/渲染技術與產品包裝表現實例教程
- Adobe Dreamweaver CS4 網頁設計與制作標準實訓教程