loops - Stata : How to use scalars in variable indexes

标签 loops syntax-error stata

我想在变量索引中使用循环标量。样例代码:

forvalues j = 1(1)9 {

gen cname_year`j' = CNAME if acyear == `j'

if `j' > 1 {
scalar endv = `j' - 1
forvalues k = 1(1)`endv' {

replace cname_year`j' = cname_year`j'[_n+`k'] if acyear[_n+`k'] == `j' & ID[_n] == ID[_n+`k']

}
}
}

下面的行给我一个“语法错误”:
replace cname_year`j' = cname_year`j'[_n+`k'] if acyear[_n+`k'] == `j' & ID[_n] == ID[_n+`k']

不确定如何解决此问题。任何帮助,不胜感激!

最佳答案

此处无需使用scalar,但如果您这样做,则肯定需要其他语法。试试吧

local endv = `j' - 1

较大的代码示例似乎在以某种尴尬的方式处理面板数据。如果您对此遇到进一步的问题,则可能需要返回论坛,但是我们需要更多的上下文来明确尝试的内容。

如果要使用标量,则语法为
forvalues k = 1(1)`= endv'

或(可以说是更明确的样式),因为endv可以是变量名
forvalues k = 1(1)`= scalar(endv)'

您使用的语法是为本地宏设计的,因此需要定义一种。

关于loops - Stata : How to use scalars in variable indexes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015632/

相关文章:

python - 如何将整数转换为以 256 为基数的表示形式?

php - 将LIKE与参数一起使用时,SQL抛出语法错误

sql-server - 执行存储过程时出现错误 "Incorrect syntax near ' -' "

r - 如何将Stata marksample转换为R语言?

applescript - 从 SublimeText 运行 AppleScript 时出现问题

C#:foreach 主值调用了多少次?

c# - 使用 LINQ 按类型合并序列

python - 如何在多维数组中添加元素

postgresql - 通过 psql 运行 SQL 脚本会出现 PgAdmin 中不会出现的语法错误

python - Python 中的稳健线性回归结果与 Stata 不一致