【问题标题】:Parentheses when assigning variables in Stata在Stata中分配变量时的括号
【发布时间】:2021-12-24 10:46:31
【问题描述】:

如果我有括号,它会有所不同吗?这是生成假人还是只是分配一个值: generate byte h_et = ( hvet )generate byte h_et = hvet 在 Stata 中?

【问题讨论】:

  • 您的代码中没有任何内容意味着创建虚拟变量。此代码会将一个变量复制到另一个变量,但有限制 (1) 如果 hvet 是字符串,则代码将失败 (2) 如果值无法正确存储在 byte 变量中,则代码将出错。

标签: stata generate


【解决方案1】:

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

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

. di 42
42

. di (42)
42

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

  . di (1 + 2) / 3
1

. di 1 + 2 / 3
1.6666667

运算符的优先级记录在

. help operators

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2016-09-23
    • 2017-03-03
    • 2018-02-18
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多