【发布时间】:2014-11-05 23:57:33
【问题描述】:
为什么当我在table 命令中使用字符串变量时,Stata 会报出一个神秘的错误?
考虑以下玩具示例:
sysuse auto, clear
decode foreign, g(foreign_str)
table foreign, contents(n foreign_str mean mpg)
这会在 Stata 13.1 中引发 r(111) variable __000002 not found 错误。
跟踪错误告诉我它正在尝试运行 format __000002 %9.0gc 并在找不到变量时崩溃。如果我在clist 中切换变量的顺序,即我运行table foreign, contents(n mpg_rank mean mpg),我会得到相同的错误,但使用__000003 而不是__000002。
因此,Stata 似乎在找到字符串变量时崩溃了。如果我用数字变量替换字符串变量,则不会发生错误。
我知道计算字符串变量的汇总统计数据没有意义,但是计算字符串变量的观察次数(在 rowvar 指定的每个组中)非常有意义。
【问题讨论】:
-
您可以使用
table foreign, contents(freq mean mpg)来解决这个问题。 -
@DimitriyV.Masterov 对,这正是我想要的;我主要好奇为什么Stata会抛出 this (在我看来)神秘错误。该函数似乎应该首先检查字符串变量,并抛出类型不匹配或字符串变量不支持错误,而不是变量未找到错误(因为变量显然存在)。
-
很遗憾,我真的不知道答案。
-
@DimitriyV.Masterov 查看我关于为什么会在 Stata 13 中发生这种情况的回答。
标签: stata