For loop forvalues中的表达式在Stata中

For loop forvalues中的表达式在Stata中,for-loop,stata,For Loop,Stata,我想用Stata代码表示以下内容: for(i=0;i<n;++i) { for(j=i+1;j<n-1;++j) { print i*j; } } 但是的内部有表达式,我不知道如何表达 PS:我想我知道如何使用局部变量或来表达相同的内容,但是我想避免这种情况。这个代码片段演示了一些技巧。它假定先前定义了本地宏n 长版本: local I = `n' - 1 forval i = 0/`I' { local J = `I' - 1 loca

我想用Stata代码表示以下内容:

for(i=0;i<n;++i) {
   for(j=i+1;j<n-1;++j) {
      print i*j;
  }
}
但是的内部
有表达式,我不知道如何表达


PS:我想我知道如何使用局部变量或
来表达相同的内容,但是我想避免这种情况。

这个代码片段演示了一些技巧。它假定先前定义了本地宏
n

长版本:

local I = `n' - 1 
forval i = 0/`I' {
    local J = `I' - 1 
    local ip1 = `i' + 1 
    forval j = `ip1'/`J' {
        display `i' * `j'
    }
}
forval i = 0/`= `n' - 1' {
    forval j = `=`i' + 1'/`= `n' - 2' {
        display `i' * `j'
    }
}
较短版本:

local I = `n' - 1 
forval i = 0/`I' {
    local J = `I' - 1 
    local ip1 = `i' + 1 
    forval j = `ip1'/`J' {
        display `i' * `j'
    }
}
forval i = 0/`= `n' - 1' {
    forval j = `=`i' + 1'/`= `n' - 2' {
        display `i' * `j'
    }
}
注意:术语“局部变量”只是Stata术语的一个大杂烩,以及您自己从其他地方导入的变量。在Stata术语中:这里的野兽是本地宏,代码中没有变量

注意:Mata更接近您给出的类似C的语法

注意:在使用本地宏时,不能避免使用本地宏
forvalues
是关于使用本地宏来控制循环的


注意:正确的拼写是“Stata”。这种语言在1985年才短暂地被称为“STATA”。是什么导致你采用这种不正确的拼写

对不起,我听不懂你的笔记。注1)为什么Mata语法在这个问题中很重要?在斯塔塔,我们能用玛塔吗?注2)我认为你的句子对任何肯定都是正确的(p=>p)。是我错过了什么吗?注3:“是什么导致您采用这种不正确的拼写?”???STATA名称?您的代码是Mata代码,您可以使用
Mata:
@Metrics在STATA中执行。几乎正确:请尝试在Mata中打印
print
。对于其余部分,拼写是“Stata”而不是“Stata”。您询问了如何在不使用本地宏的情况下执行此操作,但是
forvalues
都是关于使用本地宏来控制循环的。