在 Stata 中分配变量时的括号
Parentheses when assigning variables in Stata
有没有括号有区别吗?这是生成假人还是只是分配一个值:
Stata 中的 generate byte h_et = ( hvet )
和 generate byte h_et = hvet
?
正如在任何允许括号的语言(我所知道的)中一样,空洞的答案是,当且仅当它们产生的结果不同于运算符的优先级会产生的结果时,括号才会有所不同。
虽然您的问题是关于 generate
,但使用 display
(di
是允许的缩写)的示例更容易理解。只是将整个表达式括起来对其含义没有影响:
. di 42
42
. di (42)
42
但是就像在初等代数中一样,括号控制先进行哪些计算,因此可能会有所不同。
. di (1 + 2) / 3
1
. di 1 + 2 / 3
1.6666667
运算符的优先级记录在
. help operators
作为一个长期的 Stata 用户和程序员,我自己来说,我从未尝试过学习它,也不会在关于它的测验中做得很好。除了极个别的例外,基本的数学知识就足够了,就像在高中数学中一样,与依赖运算符优先级相比,积极地使用括号是编写清晰正确代码的更好方法。
有没有括号有区别吗?这是生成假人还是只是分配一个值:
Stata 中的 generate byte h_et = ( hvet )
和 generate byte h_et = hvet
?
正如在任何允许括号的语言(我所知道的)中一样,空洞的答案是,当且仅当它们产生的结果不同于运算符的优先级会产生的结果时,括号才会有所不同。
虽然您的问题是关于 generate
,但使用 display
(di
是允许的缩写)的示例更容易理解。只是将整个表达式括起来对其含义没有影响:
. di 42
42
. di (42)
42
但是就像在初等代数中一样,括号控制先进行哪些计算,因此可能会有所不同。
. di (1 + 2) / 3
1
. di 1 + 2 / 3
1.6666667
运算符的优先级记录在
. help operators
作为一个长期的 Stata 用户和程序员,我自己来说,我从未尝试过学习它,也不会在关于它的测验中做得很好。除了极个别的例外,基本的数学知识就足够了,就像在高中数学中一样,与依赖运算符优先级相比,积极地使用括号是编写清晰正确代码的更好方法。