Stata foreach 循环说 tabulate 不是有效的命令名称?

问题描述 投票:0回答:1

使用 Stata v18。我只想标记本地变量列表中的所有变量(在我的原始数据中,它是为了显示“丢失的”ER 变量,但在其他方面没有区别)。关于 Stata 为何不断告诉我这一点的任何想法

tab 
var'` 不是有效的命令名称?

我只想标记本地变量列表中的所有变量(列表中每个变量的频率百分比)。最终,我正在做一个更大的循环,按州、个案工作者等拆分 varlist,但这是 KISS 版本。

我已经使用示例数据集 nlsw88.dta 复制并跟踪了我的问题:

clear
sysuse nlsw88.dta

set trace on
local varlist "married never_married grade collgrad south smsa c_city industry occupation union"
foreach var in `varlist' {
        tab `var'
        display "`var'"
    } 
set trace off

Stata 重复生成以下输出和错误消息:

. clear

. sysuse nlsw88.dta
(NLSW, 1988 extract)

. 
. set trace on

. local varlist "married never_married grade collgrad south smsa c_city indu
> stry occupation union"

. foreach var in `varlist' {
  2.         tab `var'
  3.                 display "`var'"
  4.         } 
- foreach var in `varlist' {
= foreach var in married never_married grade collgrad south smsa c_city indu
> stry occupation union {
-      tab `var'
=      tab married
     is not a valid command name
  display "`var'"
  }
r(199);

end of do-file

r(199);

任何帮助表示赞赏。

for-loop foreach stata stata-macros tabulate
1个回答
0
投票

你的代码原则上看起来不错。

我认为 Stata 正在反对一个或多个不寻常的字符潜入您的代码中。

请注意,您向我们显示的错误消息并不是

tabulate
(或
tab
)不是有效的命令名称。就是那个

   is not a valid command name 

tabulate
之前寻找不寻常的字符。或者删除
tabulate
之前的所有字符,然后重试。

在 MS Word 中准备代码有时会导致此问题。它是一个文字处理器,而不是文本编辑器。

© www.soinside.com 2019 - 2024. All rights reserved.