我最近一直在用Stata做一些统计工作,但并不是很喜欢。
在我看来,它不像是一种“合适的”编程语言:尤其是,我不认为有一种方法可以在满足某个条件之前进行循环。
我的感觉是对的吗,或者Stata是真正的图灵完整吗?
发布于 2010-12-09 15:00:25
我以前从来没有听说过Stata,但网页上吹嘘说它有"if, while“和"looping and branching”。
维基图书有this example
local k = 1
file open myfile using toto.txt, read text
file read myfile line
while r(eof) == 0 {
local k = `k' + 1
di "`k' `line'"
file read myfile line
}
file close myfile我不知道“适当的”编程语言是什么意思,但乍一看,它绝对是图灵完备的。
发布于 2010-12-11 14:43:43
一种“适当的”编程语言,你可以用它来构建网页或GUI?当然不是。但这有点极端。你当然可以用.ado和.do文件编写循环;我想说它是图灵完成的。
发布于 2010-12-16 13:04:02
虽然您可以使用- While -、-if、-else-命令来执行循环,直到满足某个条件,但在Stata中使用-foreach- or -forvalues循环来代替它们通常是一个更好的想法。
所以,与其说:
while "`1'" != "" {
<do something>
} 或
if "`a'" == "" {
<do something>
}
else {
<do something else>
}通常更好(也更直观)的做法是:
forvalues x = 1/100 {
<do something>
}--不需要if-、-else-或-break条件。有关详细信息,请参阅-help for forvalues或-help foreach- in Stata。
^注意:我最初的帖子中的while-else循环被删除了--谢谢你的提醒,Keith。else- part仅用于if{] else{}循环示例。无论如何,我这篇文章的重点并不是建议使用while/else或if/else循环,而是-foreach-/-forvalues-通常是首选方法。
https://stackoverflow.com/questions/4395627
复制相似问题