在 Stata 中分配变量时的括号

Parentheses when assigning variables in Stata

有没有括号有区别吗?这是生成假人还是只是分配一个值: Stata 中的 generate byte h_et = ( hvet )generate byte h_et = hvet

正如在任何允许括号的语言(我所知道的)中一样,空洞的答案是,当且仅当它们产生的结果不同于运算符的优先级会产生的结果时,括号才会有所不同。

虽然您的问题是关于 generate,但使用 displaydi 是允许的缩写)的示例更容易理解。只是将整个表达式括起来对其含义没有影响:

. di 42
42

. di (42)
42

但是就像在初等代数中一样,括号控制先进行哪些计算,因此可能会有所不同。

  . di (1 + 2) / 3
1

. di 1 + 2 / 3
1.6666667

运算符的优先级记录在

. help operators

作为一个长期的 Stata 用户和程序员,我自己来说,我从未尝试过学习它,也不会在关于它的测验中做得很好。除了极个别的例外,基本的数学知识就足够了,就像在高中数学中一样,与依赖运算符优先级相比,积极地使用括号是编写清晰正确代码的更好方法。