- . sysuse auto,clear
- (1978 Automobile Data)
- . collapse price mpg,by(foreign)
- . des2
- File:
- Date:
- obs: 2
- vars: 3
- variable name type format value label variable label
- -----------------------------------------------------------------------------------------------------
- foreign byte %8.0g origin Car type
- price double %8.0gc (mean) price
- mpg double %8.0g (mean) mpg
可以发现,price和mpg的变量标签变成了 (mean) price和 (mean) mpg,这是collapse自动生成的,并不是我们想要的。我们只要在collappse之前取出原始变量标签,collapse之后加上原始标签即可。代码如下:
- sysuse auto,clear
- foreach v of var * {
- local l`v' : variable label `v'
- if `"`l`v''"' == "" {
- local l`v' "`v'"
- }
- }
- collapse price mpg weight length ,by(foreign)
- foreach v of var * {
- label var `v' "`l`v''"
- }
- des
- Contains data
- obs: 2 1978 Automobile Data
- vars: 3
- (_dta has notes)
- -----------------------------------------------------------------------------------------------------
- storage display value
- variable name type format label variable label
- -----------------------------------------------------------------------------------------------------
- foreign byte %8.0g origin Car type
- price double %8.0gc Price
- mpg double %8.0g Mileage (mpg)
- -----------------------------------------------------------------------------------------------------
- Sorted by: foreign
- Note: Dataset has changed since last saved.
此时可以发现最终的变量标签已经还原为原始标签,注意,collapse前后的命令你都不用修改,复制粘贴即可。另外,上面所以命令要一起选中执行才可以,否则会报错,原因在于用到了local暂元。如果您觉得有用,记得点赞评分哦