2013-02-10 118 views
1

有沒有辦法用更簡潔的語法來表達這種使用if()用較短的語法

if (`avgInc' > 0) { 
    loc avgIncDec = "increased" 
} 
else { 
    loc acgIncDec = "decreased" 
} 

一樣的東西InlineIf(IIF):

loc avgInc = iif((`avgInc' > 0), "increased", "decreased") 

回答

1

上回答了有益的重點cond()但包含了一些小錯誤。

loc avgIncDec = cond(`avginc' > 0, "increased", "decreased") 

注意的Stata,像許多其他語言,使用=用於分配和==測試相等。

+0

這些日子似乎很多人都需要學習'cond()':) – 2013-02-11 03:38:28

+0

正如另一個線程中提到的,在http://www.stata-journal.com/sjpdf.html有一個入門教程? articlenum = pr0016 – 2013-02-11 09:01:39

2

嘗試cond

var = if cond(a="value","1","another value")

如果a =「value」var =「1」else var =「other value」

還有其他的三元運營商,以及:inrange() inlist()

+0

完美!謝謝 – KyleMit 2013-02-10 17:30:19