2016-03-03 94 views
0

我需要根據當前目錄的路徑將文件保存在文件名下。例如,我有當前目錄,並定義爲初始數據集如下:從目錄路徑中提取文件名

// current directory 
cd "C:\Users\Raw data AA SYS BEST" 
// the initial master dataset in "analysis" subfolder 
use "analysis\master.dta" , clear 

我需要的輸出文件相同的「分析」子文件夾的名稱下保存「分析\ output_AA_SYS_BEST.dta」。

有,我遇到了兩個問題:

(1)如何提取目錄名稱的一部分。我設法找到一些有用的信息,以瞭解如何使用substr()函數來提取存儲在同一目錄 (http://www.ats.ucla.edu/stat/stata/faq/append_many_files.htm)中但不是目錄本身的文件名列表的部分。

(2)我試圖定義一個局部宏觀前期,然後用文件名串聯它的一個簡單的方法,但它沒有工作,因爲語法錯誤的推測:

local x "AA SYS BEST" 
save "analysis\test"_"`x'"_".dta" 
+1

對於(1)我認爲'filelist'(來自SSC)可能很有用。請參閱http://stackoverflow.com/q/35558697/2077064的答案,這可能會有所幫助。 –

+0

羅伯託,謝謝你,如果我分配'本地x = substr(dirname,10,10)',它確實有效。你知道還可以定義'filelist,directory(「C:\ ...」)'而不必再次輸入整個路徑嗎?像'filelist,directory(cd)'? – user2700264

+0

將路徑放在本地宏中,然後使用它。 –

回答

1

在( 1)我不清楚你的問題是什麼,並且看不到任何代碼示例。

(2)這應該工作:

local x "AA SYS BEST" 
save "analysis\test_`x'_.dta" 

但是要注意,如果反斜線和當地的宏名緊靠。改用正斜槓。所以這應該工作

local x "AA SYS BEST" 
save "analysis\`x'_.dta" 

但這應該工作,即使是在Windows中,

local x "AA SYS BEST" 
save "analysis/`x'_.dta" 

更多關於反斜槓,請參見18.3.1 http://www.stata.com/manuals14/u18.pdfhttp://www.stata-journal.com/sjpdf.html?articlenum=pr0042

相關問題