想过潜在的三个问题:①没有写入权限,②硬盘空间不足
对于①,我尝试了用管理员权限打开stata,还是报错,对于②,我尝试把运行目录搬到我的硬盘上,空间非常充足还是报错了。
于是想到第三种可能:tempfile太大
有的时候打开.dta文件,再返回文件目录,能看见一个后缀为.tmp的文件,如ST_a760_000000.tmp,随着stata窗口关闭,这个文件会消失
stata官网也有对于disk space的问题的阐述,见Stata | FAQ: Using the STATATMP environment variablehttps://www.stata.com/support/faqs/data-management/statatmp-environment-variable/这个链接里详细阐述了Windows系统中temp的路径,stata是利用默认的路径进行运行的,查看方法:打开stata,运行两行命令,能看见TEMP的路径
tempfile junk
display "`junk'"
有两种变更策略,temporary fix和permanent fix,这里只转述Windows系统的策略。
- temporary fix:将以下代码创建为一个.bat文件到桌面,运行
set STATATMP=drive:\path\to\location
cd drive:\path\to\start in directory
drive:\path\to\Stata binary - permanent fix
环境变量-->>用户变量-->>新建“STATATMP”,设定自定义路径
需要注意,即使变更了环境变量中的TEMP路径,未关闭的stata还是维持打开时的设置,也就是说变更TEMP环境之后需要重启stata。