[英]Extension of Excel files remains when doing an import loop in Stata
我不明白為什么在運行以下簡單代碼時,我的文件被保存為xxx.xls.dta
而不是xxx.dta
以及如何解決這個問題。
clear all
cd "C:\Users\User\Documents\PhD\Research\Data\acqua_costiera"
global RawAcqua "C:\Users\User\Documents\PhD\Research\Data\acqua_costiera"
local acquacost : dir "C:\Users\User\Documents\PhD\Research\Data\acqua_costiera" files "*.xls", respectcase
foreach f of local acquacost {
import excel using "$RawAcqua\\`f'", cellrange(B4:N43310) firstrow clear
save "`f'.dta", replace
}
我試過在網上查看其他類似的代碼,但我真的不明白我的錯誤是什么。
我正在遍歷該目錄中的所有文件,但這些文件被命名為“acqua_costiera_`year'”,所以我想其他一些循環也可能起作用。
使用以下玩具示例可以輕松說明您的問題:
local acquacost one.xls two.xls three.xls
foreach f of local acquacost {
display "`f'.dta"
}
one.xls.dta
two.xls.dta
three.xls.dta
您需要告訴 Stata 只保留文件名,而不是擴展名:
foreach f of local acquacost {
display "`= substr("`f'", 1, strpos("`f'", ".") - 1)'.dta"
}
這里我使用strpos()
函數來獲取第一個句點的位置,然后使用它作為參考點,使用substr()
函數提取string
的相關部分。
要使用正確的名稱save
文件,只需使用save
,而不是display
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.