2013-02-10 74 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