Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Forvalues循环显示不正确的语法_Loops_Stata - Fatal编程技术网

Loops Forvalues循环显示不正确的语法

Loops Forvalues循环显示不正确的语法,loops,stata,Loops,Stata,我想根据给定的变量游戏生成变量名。 例如,如果games为3,则结果为 game1=均匀分布值列表 game2=相同等 虽然类似问题有多个示例和答案,但我不明白为什么我的代码不能产生我想要的结果 Stata显示以下循环的语法错误: set obs 1000 forvalues i = 1(1)games { generate game`i' = runiform() } 在斯塔塔看来,games真的是一个变量吗?一次又一次地保持相同的常数是不必要的,也是低效的 问题是forvalues希望看

我想根据给定的变量
游戏
生成变量名。
例如,如果
games
为3,则结果为

game1
=均匀分布值列表

game2
=相同等

虽然类似问题有多个示例和答案,但我不明白为什么我的代码不能产生我想要的结果

Stata显示以下循环的语法错误:

set obs 1000

forvalues i = 1(1)games {
generate game`i' = runiform()
}

在斯塔塔看来,
games
真的是一个变量吗?一次又一次地保持相同的常数是不必要的,也是低效的

问题是
forvalues
希望看到数字;它不会动态执行评估。但斯塔塔的其他地方也会这样做

如果您知道只需要3个变量,那么您可以这样做:

clear 
set obs 1000

forvalues i = 1/3 {
    generate game`i' = runiform()
}
或者你可以这样做:

clear 
set obs 1000
local games = 3     
forvalues i = 1/`games' {
    generate game`i' = runiform()
}
这与我的开头一段并不矛盾。在执行任何命令之前执行所有宏计算;因此,
forvalues
看到的是3,而不是本地宏名称

如果你真的在一个变量中保持一个常数,那么这就行了:

clear 
gen games = 3 
set obs 1000
forvalues i = 1/`=games[1]' {
    generate game`i' = runiform()
}

在斯塔塔看来,
games
真的是一个变量吗?一次又一次地保持相同的常数是不必要的,也是低效的

问题是
forvalues
希望看到数字;它不会动态执行评估。但斯塔塔的其他地方也会这样做

如果您知道只需要3个变量,那么您可以这样做:

clear 
set obs 1000

forvalues i = 1/3 {
    generate game`i' = runiform()
}
或者你可以这样做:

clear 
set obs 1000
local games = 3     
forvalues i = 1/`games' {
    generate game`i' = runiform()
}
这与我的开头一段并不矛盾。在执行任何命令之前执行所有宏计算;因此,
forvalues
看到的是3,而不是本地宏名称

如果你真的在一个变量中保持一个常数,那么这就行了:

clear 
gen games = 3 
set obs 1000
forvalues i = 1/`=games[1]' {
    generate game`i' = runiform()
}

只有定义了
游戏
,这才是完整的代码。只有定义了
游戏
,这才是完整的代码。