将Excel单元格作为variables读入Stata全局variables

有几个面板数据集,我想join。

这些数据集中的观察结果由idvariables和标识观察时间的variables来标识。 所有的数据集都包括我需要的一些variables,有些我不需要也不会有相同的variables(不包括id和survey-time-variable)。

数据集是巨大的,所以为了加速处理和减小最终数据集的大小,我想drop所有我不需要的variables。

Thoosevariables存储在具有多列的Excel文件中。 其中一列,比如C2,包含我所有的variables名称。

现在我相信我有两种可能的方式可以遵循,我按照我的喜好来描述:

1)将Excel文件中的variables名称读入Stata中的全局variables,然后声明:

 keep global varlist 

这样只有variables我需要保留。

2)用Excel文件中的所有variables生成一个新的空数据集,然后

 joinby id syear $varlist using dataset, update 

无论如何,我需要从Excel文件中读出variables为全局variables。 我意识到我可以通过从Excel复制粘贴到Stata中来实现这一点,但是我想随着工作的进行,variables会有一些变化,我想学习如何在Stata中正确编程。

我build议读取variables名称到local ,只使用global如果是绝对必要的。

一种方法是使用import excellevelsof

 clear set more off // import from MS Excel and create local import excel using myvars.xlsx, cellrange(B2:B5) firstrow levelsof myvars, local(tokeep) clean // use local clear sysuse auto describe keep `tokeep' describe 

MS Excel文件读取

 myvars make mpg weight 

在相应的单元格中。

结果 :

 . // import from MS Excel and create local . import excel using myvars.xlsx, cellrange(B2:B5) firstrow . levelsof myvars, local(tokeep) clean make mpg weight . . // use local . clear . sysuse auto (1978 Automobile Data) . describe Contains data from C:\Program Files (x86)\Stata13\ado\base/a/auto.dta obs: 74 1978 Automobile Data vars: 12 13 Apr 2013 17:45 size: 3,182 (_dta has notes) -------------------------------------------------------------------------------------------------------------------- storage display value variable name type format label variable label -------------------------------------------------------------------------------------------------------------------- make str18 %-18s Make and Model price int %8.0gc Price mpg int %8.0g Mileage (mpg) rep78 int %8.0g Repair Record 1978 headroom float %6.1f Headroom (in.) trunk int %8.0g Trunk space (cu. ft.) weight int %8.0gc Weight (lbs.) length int %8.0g Length (in.) turn int %8.0g Turn Circle (ft.) displacement int %8.0g Displacement (cu. in.) gear_ratio float %6.2f Gear Ratio foreign byte %8.0g origin Car type -------------------------------------------------------------------------------------------------------------------- Sorted by: foreign . . keep `tokeep' . describe Contains data from C:\Program Files (x86)\Stata13\ado\base/a/auto.dta obs: 74 1978 Automobile Data vars: 3 13 Apr 2013 17:45 size: 1,628 (_dta has notes) -------------------------------------------------------------------------------------------------------------------- storage display value variable name type format label variable label -------------------------------------------------------------------------------------------------------------------- make str18 %-18s Make and Model mpg int %8.0g Mileage (mpg) weight int %8.0gc Weight (lbs.) -------------------------------------------------------------------------------------------------------------------- Sorted by: Note: dataset has changed since last saved . end of do-file 

另请参阅help file read ,但对于您的情况,这似乎是一个不必要的复杂的path。