楼主: carol119
3830 7

求助:回归结果输出时出错 [推广有奖]

  • 0关注
  • 0粉丝

大专生

60%

还不是VIP/贵宾

-

威望
0
论坛币
202 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
524 点
帖子
57
精华
0
在线时间
34 小时
注册时间
2006-3-18
最后登录
2021-5-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我的程序里有比较多层的循环,每层循环中都输出到文件result.xls,使用的命令是“outreg2 using result.xls,p append”,每次程序运行到中途时都会出错,提示:file result.txt could not be opened  或者是 file result.xls could not be opened。出现这个问题时,还经常伴随着 result.txt 或者result.xls 文档的丢失。

但是出错的位置不是固定的,因为我找到已经输出的 result.xls 或者 result.txt ,发现其中包含的回归结果的数目每次都不一样。

请教大侠们,这是怎么回事啊?

谢谢!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:回归结果输出 结果输出 回归结果 Result opened 求助 结果 输出

回帖推荐

arlionn 发表于7楼  查看完整内容

outreg2 命令的基础是 file open,file write, file close (see help file)。 在你的循环中,你可以尝试附加 append 选项来添加新的输出结果,否则会引起文件写入时的一些逻辑混乱。对此,stata的解释是: When a file is opened write, and the options replace or append are not specified, the file must not exist, or an error message will be issued. The file is positioned at the top (tof), so the first file ...

本帖被以下文库推荐

沙发
蓝色 发表于 2009-10-22 18:40:44 |只看作者 |坛友微信交流群
把数据和程序贴出来

使用道具

藤椅
carol119 发表于 2009-10-22 21:55:38 |只看作者 |坛友微信交流群
1# carol119

小小改动了一下,已经可以顺利运行了,但不知道算不算是解决问题了……

有大侠进来的帮我看看哈~

我原来的程序是类似于这样的格式

foreach aaa  in ......{
    foreach bbb  in ......{
           reg ...
           outreg2  file.xls
           }
    foreach ccc  in ......{
           reg ...
           outreg2 file.xls
           }
    reg ...
    outreg file.xls
}


有个朋友提醒我循环中并列的回归太多了,让尽量弄成嵌套的,我就试了一下,改成了下面的结构:

foreach aaa  in ......{
    foreach bbb  in ......{
        foreach ccc  in ......{
               reg ...
               outreg2 file.xls
               }
       }
}

结果就奇迹般的可以运行了。我对stata不太熟,也不知道是不是运气问题,但总算是可以用了。

如果也碰到我这样的情况,也许可以试试,但是管不管用我就不敢说了哈……

使用道具

板凳
eblog 发表于 2009-10-23 14:03:08 |只看作者 |坛友微信交流群
carol119 发表于 2009-10-22 21:55
1# carol119

小小改动了一下,已经可以顺利运行了,但不知道算不算是解决问题了……

有大侠进来的帮我看看哈~

我原来的程序是类似于这样的格式

foreach aaa  in ......{
    foreach bbb  in ......{
           reg ...
           outreg2  file.xls
           }
    foreach ccc  in ......{
           reg ...
           outreg2 file.xls
           }
    reg ...
    outreg file.xls
}


有个朋友提醒我循环中并列的回归太多了,让尽量弄成嵌套的,我就试了一下,改成了下面的结构:

foreach aaa  in ......{
    foreach bbb  in ......{
        foreach ccc  in ......{
               reg ...
               outreg2 file.xls
               }
       }
}

结果就奇迹般的可以运行了。我对stata不太熟,也不知道是不是运气问题,但总算是可以用了。

如果也碰到我这样的情况,也许可以试试,但是管不管用我就不敢说了哈……
各种计算机程序的内在运算逻辑蒙基本上是一致的,对Stata不太熟悉也不会影响你用Stata编程,这说明Stata的程序语言是比较友好的

使用道具

报纸
carol119 发表于 2009-10-24 12:29:39 |只看作者 |坛友微信交流群
版主,对不起了,不过我真的不是来灌水的,我只是按照事件发生的过程来这里报告了一下,如果说真的有什么不对的话,应该就是我没有把情况弄的太清楚就来报告了…… 但是为了避免误导读帖的朋友,我还是要把现在的状况说明一下……

之前发布的“小小改动”并没有解决问题,事实证明确实是“运气”。因为我刚才又把改动后的程序运行了几次,又出现同样的出错提示了。

目前的状况是:同样的程序,同样的数据,时而可以运行,时而不能。

为了确认问题的所在,我把几个月以前完成的另一个项目中的程序和数据重新运行了一下(那些程序和数据在当时是可以成功运行并输出结果的),同样发生了丢失 .txt 或 .xls 文档的情况。于是,我初步断定是软件或是操作系统出现了问题。

1、软件问题
出现问题之前的这段时间,我对stata进行过离线升级。我想知道是否是因为升级中发生了状况,于是我在人大上重新下载了软件(http://www.pinggu.org/bbs/thread-235371-1-1.htmlhttp://www.pinggu.org/bbs/thread-590288-1-1.html),并分别运行了我的程序,错误仍然存在。

2、操作系统问题
我使用“360杀毒”查毒没有发现问题。但我最近还安装了电驴上下载的SAS9.2,不知道软件之间是否会有冲突。

以上,就是我目前想到的可能的原因,但问题还没有解决,希望有路过的大侠帮忙分析分析,感激不尽

使用道具

地板
eblog 发表于 2009-10-24 15:05:18 |只看作者 |坛友微信交流群
carol119 发表于 2009-10-24 12:29
版主,对不起了,不过我真的不是来灌水的,我只是按照事件发生的过程来这里报告了一下,如果说真的有什么不对的话,应该就是我没有把情况弄的太清楚就来报告了…… 但是为了避免误导读帖的朋友,我还是要把现在的状况说明一下……
………………
以上,就是我目前想到的可能的原因,但问题还没有解决,希望有路过的大侠帮忙分析分析,感激不尽
把你的数据和程序都贴出来

使用道具

7
arlionn 在职认证  发表于 2009-10-24 15:06:34 |只看作者 |坛友微信交流群
outreg2 命令的基础是 file open,file write, file close (see help file)。

在你的循环中,你可以尝试附加 append 选项来添加新的输出结果,否则会引起文件写入时的一些逻辑混乱。对此,stata的解释是:
When a file is opened write, and the options replace or append are not specified, the file must not exist, or an error message will be issued. The file is positioned at the top (tof), so the first file write writes at the beginning of the file. Net files may not be opened for write.
另一个办法是,在循环中使用 est store 存储结果,待所有的循环都处理完后,统一采用 outreg2 输出结果。大体结构如下:
local j = 1
forvalues ……{
   forvalues ……{
         forvalues ……{
               qui reg y x ……
               est store r_`j++'
         }
   }
}
outreg2 r_*, options

使用道具

8
carol119 发表于 2009-10-26 19:46:05 |只看作者 |坛友微信交流群
7# arlionn

谢谢版主!

我之前的命令里有加 append 选项,还是出现了错误。

est  store 很好用,这样的格式可以使运行的速度大大提高,值得推荐!但是并没有避免错误的出现……

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-11 15:14