2013-09-30 134 views
2

我有一个.csv文件的文件夹,总大小为6 GB。 我想自动将这个文件夹中的所有数据插入到Stata中。从文件夹加载.csv文件

搜索网,我已经找到了一些解决方案,如:

cd "E:\myfolder" 

. insheet using "file1.csv" 

. save "a", replace 


. local satafiles: dir . files "*.csv" 

. foreach file of local satafiles { 
    2. append using "a" 
    3. save "myfile.dta", replace 
    4. } 

但如果我探索导入的数据,我在所有条目相同的日期值。 有没有人有Stata导入数据的经验?

+0

“a”只是调用字符串a;用倒勾取代第一个引号,用倒勾取代第二个引号(由于Markdown语法,我无法显示它)。在文件路径有空格的情况下,在其周围添加双引号以保护字符串。更多在'帮助当地'。 –

回答

3

这是重复的,因为您只是多次添加“a”,即您的第一个数据集。试试这个:

cd "E:\myfolder" 

clear 
local satafiles: dir . files "*.csv" 

foreach file of local satafiles { 
    preserve 
    insheet using `file',clear 
    save temp,replace 
    restore 
    append using temp 
} 
*remove the temporary .dta file 
rm temp 

save alldata, replace 

注意,如果文件变得太大,你可以在insheet命令后做一些节省空间的格式。

+0

Stata数据有一行代码:'fornumlist 1/100:使用“E:\ myfolder \ mydata \ fileX.dta”'追加。但是,我很惊讶这不适用于csv文件 – Metrics