将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 excel
和levelsof
:
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。