Csv 在Stata中超出表本地值
如何在stata中比本地值更出色 我尝试使用以下命令,但在Stata 12中出现了一个错误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
变量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//删除文本文件
,我认为您需要以不同的方式调用本地值(请参阅我的编辑)。