String foreach用于字符串值,手动列表

String foreach用于字符串值,手动列表,string,foreach,stata,manual,String,Foreach,Stata,Manual,如何在Stata中创建字符串值循环?下面是我尝试做的一个例子。我将在列表中列出许多其他可能的值。我已经阅读并制作了许多手动列表,所以我想用与此类似的格式来做,您可以查看代码并查看列表 我发现了有关foreach和forval的问题,但似乎找不到与foreach和字符串变量值直接相关的问题?我错过了一些非常简单的东西吗 尝试过这个: foreach x of "GREEN BLUE" /// "RED ORANGE" /// { replace y = 1 if COLOUR=="`x

如何在Stata中创建字符串值循环?下面是我尝试做的一个例子。我将在列表中列出许多其他可能的值。我已经阅读并制作了许多手动列表,所以我想用与此类似的格式来做,您可以查看代码并查看列表

我发现了有关
foreach
forval
的问题,但似乎找不到与
foreach
和字符串变量值直接相关的问题?我错过了一些非常简单的东西吗

尝试过这个:

foreach x of

"GREEN BLUE" /// 

"RED ORANGE" ///

 {

replace y = 1 if COLOUR=="`x'" & missing(y)

} 
foreach x of {

"GREEN BLUE" /// 

"RED ORANGE" ///

 {

replace y = 1 if COLOUR=="`x'" & missing(y)

} 

}
还有这个:

foreach x of

"GREEN BLUE" /// 

"RED ORANGE" ///

 {

replace y = 1 if COLOUR=="`x'" & missing(y)

} 
foreach x of {

"GREEN BLUE" /// 

"RED ORANGE" ///

 {

replace y = 1 if COLOUR=="`x'" & missing(y)

} 

}

您的主要来源应该是
foreach
的帮助和手动输入。两者都表明有两种不同的语法,从

foreach
index
in
list

foreach
index关键字列表的索引

您不能使用任何其他语法(您的一个示例将列表放入循环中),也不能混合使用这些语法(因此,在没有关键字的情况下使用的
)。如果Stata的解析器对您所设想的幻想语法感到非常困惑,那么错误消息可能不会直接提供信息

因此,这应该是可行的(当然取决于您的数据集,我们看不到)

本质上,任何不允许出现在每个文档开头的语法图中的内容都是绝对禁止的。您的语法必须与其中一个表单匹配


元提示:在搜索互联网之前阅读Stata文档

您的主要来源应该是
foreach
的帮助和手动输入。两者都表明有两种不同的语法,从

foreach
index
in
list

foreach
index
关键字列表的索引

您不能使用任何其他语法(您的一个示例将列表放入循环中),也不能混合使用这些语法(因此,在没有关键字的情况下使用的
)。如果Stata的解析器对您所设想的幻想语法感到非常困惑,那么错误消息可能不会直接提供信息

因此,这应该是可行的(当然取决于您的数据集,我们看不到)

本质上,任何不允许出现在每个文档开头的语法图中的内容都是绝对禁止的。您的语法必须与其中一个表单匹配


元提示:在搜索互联网之前阅读Stata文档

以尼克的回答为基础,如果部分目标是为了清晰起见将列表中的元素放在单独的行中,那么像下面这样将尼克的第一行分成四段就可以了。同样,响应Nick的建议,第一站应该始终是阅读Stata通过其
帮助
命令和作为PDF提供并通过Stata的
帮助
菜单提供的完整文档中提供的精细材料。尽管如此

foreach x in ///
"GREEN BLUE" ///
"RED ORANGE" ///
{
replace y = 1 if COLOUR == "`x'" & missing(y)
} 

基于Nick的回答,如果部分目标是为了清晰起见,将列表中的元素放在单独的行中,那么下面这样的方法可以将Nick的第一行分成四段。同样,响应Nick的建议,第一站应该始终是阅读Stata通过其
帮助
命令和作为PDF提供并通过Stata的
帮助
菜单提供的完整文档中提供的精细材料。尽管如此

foreach x in ///
"GREEN BLUE" ///
"RED ORANGE" ///
{
replace y = 1 if COLOUR == "`x'" & missing(y)
} 

我一直收到此错误:}不是有效的命令名我一直收到此错误:}不是有效的命令名谢谢William和Nick。我陷入困境的是,在William代码的第一行之后,我得到:{required。然后在每个值之后,我得到的“value”不是一个有效的命令名。但是William说我试图将这些值放在一个列表中(而不是全部放在一行中),这是我的目标。谢谢。
value
与此代码有什么关系?要获得任何有价值的回复,您需要准确地告诉我们您键入的内容。请注意,
//
注释语法不会以交互方式被接受。编辑原始问题可以,但最好标记补充内容,例如编辑:谢谢William and Nick。我陷入困境的是,在William代码的第一行之后,我得到:{required。然后在每个值之后,我得到的“value”不是一个有效的命令名。但是William说我试图将这些值放在一个列表中(而不是全部放在一行中),这是我的目标。谢谢。
value
与此代码有什么关系?要获得任何有价值的回复,您需要准确地告诉我们您键入的内容。请注意,
//
注释语法不会以交互方式被接受。可以编辑原始问题,但最好标记补充内容,例如通过编辑:它说“varlist not allowed”我无法评估该注释。它指的是您键入的某些代码,但如果没有更多详细信息,我无法诊断问题。它表示“varlist not allowed”我无法评估该注释。它指的是您键入的某些代码,但如果没有更多详细信息,我无法诊断问题。