Csv 在Stata中超出表本地值

Csv 在Stata中超出表本地值,csv,stata,Csv,Stata,如何在stata中比本地值更出色 我尝试使用以下命令,但在Stata 12中出现了一个错误变量local not found sysuse auto summ price,de outsheet local p1 local p99 using "range\range.csv", replace c 我也试过了 outsheet r(p1) r(p99) using "range\range.csv", replace c 但是错误因子变量和时间序列运算符不允许outsheet

如何在stata中比本地值更出色 我尝试使用以下命令,但在Stata 12中出现了一个错误
变量local not found

sysuse auto
summ price,de
outsheet local p1 local p99   using "range\range.csv", replace c
我也试过了

 outsheet r(p1) r(p99)   using "range\range.csv", replace c 

但是错误
因子变量和时间序列运算符不允许

outsheet
用于将数据导出为变量。使用
outsheet
导出任何与变量无关的内容的唯一方法是将该内容放入变量中。因此,您的语法绝对不起作用,因为您引用的元素都不是变量名

summary之后,可以在保存的结果(如
r(p1)
r(p99)
)中访问详细的
结果(如第1个和第99个百分位数),并且可以使用类似于本地宏的语法引用这些结果,但这些保存的结果不是本地宏


如果你支持并告诉我们你真正的问题,你可能会得到更积极的建议。如果要将<代码>汇总结果导出到电子表格,方法以复制和粘贴开始

将一些本地宏值导出到小型csv文件的一种简单方法是,用逗号编写一个文本文件,最后将其重命名为csv。以您的示例为例,您可以尝试:

sysuse auto
file open TABLES using "ranges.txt", write replace //create temporary text file
file write TABLES "p1, p99" _n // columns headers
summ price,de
file write TABLES (r(p1)) "," (r(p99))  _n // write locals separated by commas into the text file
file close TABLES

copy ranges.txt ranges.csv, replace //change extension to csv
rm ranges.txt //remove text file
如果要对每个级别的
rep78
重复此过程:

sysuse auto
levelsof rep78, local(levels) 
file open TABLES using "ranges.txt", write replace //create temporary text file
file write TABLES "level of rep78, p1, p99" _n // columns headers

foreach i of local levels {
summ price if rep78==`i',de 
file write TABLES "`i', `r(p1)' , `r(p99)'"_n 
}
file close TABLES
copy ranges.txt ranges.csv, replace //change extension to csv
rm ranges.txt //remove text file

多亏了这一点,但主要的问题是,当我在一个循环中合并时,Stata无法识别该函数,即
sysuse auto,使用“ranges.txt”清除文件打开表,write replace//创建临时文本文件文件write TABLES“p1,p99”\n rep78的级别,每个本地级别的本地(级别){summ price if rep78=`i',de file write TABLES(r(p1)),“(r(p99))\u n}file close TABLES copy ranges.txt ranges.csv,replace//将扩展名改为csv rm ranges.txt//删除文本文件
,我认为您需要以不同的方式调用本地值(请参阅我的编辑)。