首页 > 技术文章 > append命令总结

celine227 2021-04-30 21:04 原文

1. 将文件夹中的excel批量转成dta文件

PS. 一定要记得将第一行添加为变量,不然会很崩溃。后面处理一直有格式问题

//将文件夹下所有excel文件转化成dta格式
cd "C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020"
xls2dta,replace recursive : import excel using C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020,firstrow clear

2. 纵向合并所有的dta文件

(1)用openall
local in myfilelist: dir . files "*.dta"
openall *
save "C:\Users\admir\Desktop\分析师预测\process\appendexcel2020.dta", replace
local files : dir "C:\Users\admir\Desktop\分析师预测\process\2019\Fenddt2020" files "*.dta"
foreach file in `files' {     //删除中间生成的dta文件
    capture erase `file'
}

(2)用gettoken
cd "C:\Users\admir\Desktop\分析师预测\process\2015\Fenddt2016"//批量删除文件夹下的dta文件
local s: dir "C:\Users\admir\Desktop\分析师预测\process\2014\Fenddt2015"  files "*.dta",  respectcase
  gettoken f1 frest: s, parse(" ")
  use "`f1'", clear
  foreach i of local frest {
    append using `i'
  }  
  save "appendexcel2.dta", replace //保存合并后的数据

(3)for循环添加
//保存文件时设置为表头,仍然会在append时候保留,以上两种方法都不会
local files : dir "C:\Users\admir\Desktop\分析师预测\process\2014\Fenddt2015" files "*.dta"
dis`files'

foreach file in `files' {
    append using `file'
}
count

save appendexcel3, replace 

推荐阅读