如何只在stata 16.1中清除r()中存储的结果

  • 本文关键字:存储 结果 清除 stata stata
  • 更新时间 :
  • 英文 :


我不确定这是一个错误,但我无法从用return clear存储的结果r((中清除结果。ereturn clear用于清除e((中存储的结果。results clear也起作用,但它清除所有结果。

有没有办法只清除r((中存储的结果?

原因是,根据某些条件,我对不同的变量运行相同的程序。清除结果将确保返回的结果总是"0";新鲜的";而不是以前运行的程序的结果。。。

用于复制

clear
sysuse auto
qui reg mpg rep78, r
* works
ereturn list
ereturn clear
ereturn list
* does not work
return list
return clear
return list // still there!
* workaround
qui reg mpg rep78, r
clear results 
return list
ereturn list

编辑

  • 在windows和linux上使用stata 16.1。同样的问题

清除r()结果的唯一方法似乎是声明一个rclass程序。这两者都有点不令人满意,而且,我相信,由于您担心您的程序产生的r()结果不会是新的,因此您的问题的解决方案也是不令人满意的。

基于Statalist的讨论,下面的例子演示了这种行为,并且——如果你想真正慷慨的话——实际上是一个清除r()结果的程序。

program rclassclear , rclass
return local rclassclear
end
sysuse auto , clear
quietly summarize mpg
rclassclear
return list

注意,文档在"将结果存储在r((中"下指出了r()return()之间的区别:

  • r()是返回的结果
  • CCD_ 11是将要返回的结果

return clear清除return()而不是r()

最新更新