Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/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
Stata类型不匹配,并且没有发生错误的行号报告_Stata - Fatal编程技术网

Stata类型不匹配,并且没有发生错误的行号报告

Stata类型不匹配,并且没有发生错误的行号报告,stata,Stata,我在谷歌上搜索了“类型不匹配”,似乎错误主要来自“替换” 事实上,我正在做一些替换,但我看不出这个错误是从哪里来的 generate price=0.0 replace price=105.17 if year==2014 gen crisis=1 if year==2008 | year==2009 replace crisis=0 if year<2008 | year>2009 gen postcrisis=1 if year>2008 replace postcri

我在谷歌上搜索了“类型不匹配”,似乎错误主要来自“替换”

事实上,我正在做一些替换,但我看不出这个错误是从哪里来的

generate price=0.0
replace price=105.17 if year==2014

gen crisis=1 if year==2008 | year==2009
replace crisis=0 if year<2008 | year>2009

gen postcrisis=1 if year>2008
replace postcrisis=0 if year<=2008
为了了解出了什么问题,我做了以下操作

. describe sales price

              storage   display    value
variable name   type    format     label      variable
>  label
------------------------------------------------------
sales           str8    %9s                   
price           float   %9.0g         
破坏也没用

. destring sales, replace
sales contains nonnumeric characters; no replace
. dataex
input statement exceeds linesize limit. Try specifying fewer variables
而且,dataex不起作用

. destring sales, replace
sales contains nonnumeric characters; no replace
. dataex
input statement exceeds linesize limit. Try specifying fewer variables
而且,当Stata因错误而停止时,它永远不会告诉我是哪一行导致了错误。它只是向我展示了以下几行

112. 
. }

(146 vars, 10748 obs)
type mismatch
r(109);

end of do-file

r(109);

这对调试非常不方便。真的是这样吗?有没有办法让Stata显示错误行?

反过来,当你没有告诉我们你的变量时,这不是一个可重复的例子

类型不匹配意味着您试图对字符串执行数字操作,反之亦然。在您的示例中,
year
可能是一个字符串变量。如果是,

destring year, replace 
调试时:一旦遇到问题,Stata将立即停止并显示错误消息。否则,
帮助跟踪
以了解有关程序跟踪的信息

您的示例语句可以全部压缩。在最后一个例子中,如果危机年份是2008年和2009年,那么你说的并不是真的

generate price = cond(year == 2014, 105.17, 0) 

gen crisis = year==2008 | year==2009

gen postcrisis = year > 2009 

非常感谢。但它并没有因为错误而停止。它只是停了下来,没有告诉我它停在哪里。我只是逐行注释了我的代码。发现“生成realsales=销售额/价格”是问题的原因。“破坏销售,替换”没有帮助。价格已经是数字了。候选原因可能是什么?那么,您的问题原来是源于您从未向我们展示的代码!同样的问题:您没有显示可复制的示例。请特别学习,请编辑您的问题,包括一个独立的例子。提示:使用
dataex
(与
ssc inst dataex一起安装)提供数据示例。显示
描述销售价格的结果
,然后是
列出缺少的销售(实际(销售))
。您的
不起作用
语句在每种情况下都没有抓住要点
destring
表示下面的注释中有非数字字符,而我的
list
语句(您没有尝试过)提供了一种查找它们的方法
dataex
清楚地告诉您尝试更少的变量,您需要向我们展示的只是问题中提到的变量。我在这里看不到任何迹象表明您已尝试
设置跟踪
。找出非数字字符是什么,并使用
destring
选项删除它们。此外,正如您所知,一条语句是错误的,重复整个
do
-file是一种糟糕的调试策略。根据您的编辑,
sales
包含非数字字符。假设数据中有一些值不能解释为数字。数据可能包含
$
或逗号?检查该变量的内容,然后使用
忽略
选项尝试
解压
。有关语法和用法,请参见帮助销毁。