2014-04-23 35 views
0

Outsheet當地的價值觀我怎麼能outsheet在Stata局部值 我使用下面的命令嘗試,但它在Stata 12在Stata

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 
給出了一個錯誤 variable local not found

但錯誤factor variables and time-series operators not allowed

回答

2

將一些本地宏值導出爲小型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 
+0

感謝這個大,但主要的問題是,當我在納入一個循環,塔塔不使用「ranges.txt」識別功能,即 'sysuse汽車,清晰 文件打開的表,寫替換//創建臨時文本文件 文件寫入TABLES「P1,P99」 _n levelsof Rep78的,當地(級別) 「我',de 文件寫入表格(r(p1))」,「(r(p99))_n } 文件關閉表格 copy ranges.txt ranges.csv,替換//將擴展名更改爲csv rm ranges.txt //刪除文本文件' – Keniajin

+0

我認爲您需要以不同的方式調用本地值(請參閱我的編輯)。 – GPierre

0

outsheet用於導出數據作爲變量。使用outsheet導出與變量不相關的任何東西的唯一方法是將該東西放入一個變量中。因此,您的語法絕對不會起作用,因爲您引用的元素都不是變量名稱。

summarize, detail後的結果,如第1和第99百分位數是像r(p1)r(p99)保存的結果接近,並且它們可以被稱爲使用的語法類似,對於當地的宏,但仍然這樣保存的結果不是本地宏。

如果您備份並告訴我們您真正的問題,您可能會得到更積極的建議。如果您想將summarize結果導出到電子表格,方法從複製和粘貼開始。