楼主: zdlspace
4515 8

[程序分享] collapse命令如何保留原来的变量标签? [推广有奖]

  • 1关注
  • 80粉丝

学科带头人

91%

还不是VIP/贵宾

-

威望
2
论坛币
5644 个
通用积分
8081.7133
学术水平
517 点
热心指数
533 点
信用等级
506 点
经验
52330 点
帖子
1681
精华
0
在线时间
2679 小时
注册时间
2013-7-21
最后登录
2024-4-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
当我们处理数据时,经常需要用到collapse命令来求和,求平均值,中位数等等,但是collapse命令有一个弊端就是用完以后,变量标签会发生改变,变为变量名之前加(mean)之类的,这可能不是我们想要的标签,我们画图时可能还是需要原来的变量标签。那该怎么办呢?话不多说,上代码!
  1. . sysuse auto,clear
  2. (1978 Automobile Data)

  3. . collapse price mpg,by(foreign)

  4. . des2

  5. File:
  6. Date:
  7. obs:  2
  8. vars: 3

  9. variable name   type    format    value label   variable label
  10. -----------------------------------------------------------------------------------------------------
  11. foreign         byte    %8.0g     origin        Car type
  12. price           double  %8.0gc                  (mean) price
  13. mpg             double  %8.0g                   (mean) mpg
复制代码

可以发现,price和mpg的变量标签变成了 (mean) price和 (mean) mpg,这是collapse自动生成的,并不是我们想要的。我们只要在collappse之前取出原始变量标签,collapse之后加上原始标签即可。代码如下:
  1. sysuse auto,clear

  2. foreach v of var * {
  3.          local l`v' : variable label `v'
  4.        if `"`l`v''"' == "" {
  5.                  local l`v' "`v'"
  6.           }
  7.   }

  8. collapse price mpg weight length ,by(foreign)

  9. foreach v of var * {
  10.          label var `v' "`l`v''"
  11.   }


  12. des

  13. Contains data
  14.   obs:             2                          1978 Automobile Data
  15. vars:             3                          
  16.                                               (_dta has notes)
  17. -----------------------------------------------------------------------------------------------------
  18.               storage   display    value
  19. variable name   type    format     label      variable label
  20. -----------------------------------------------------------------------------------------------------
  21. foreign         byte    %8.0g      origin     Car type
  22. price           double  %8.0gc                Price
  23. mpg             double  %8.0g                 Mileage (mpg)
  24. -----------------------------------------------------------------------------------------------------
  25. Sorted by: foreign
  26.      Note: Dataset has changed since last saved.
复制代码


此时可以发现最终的变量标签已经还原为原始标签,注意,collapse前后的命令你都不用修改,复制粘贴即可。另外,上面所以命令要一起选中执行才可以,否则会报错,原因在于用到了local暂元。如果您觉得有用,记得点赞评分哦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Collapse lapse PSE APS Automobile

回帖推荐

黃河泉 发表于2楼  查看完整内容

似乎也可以用 (ssc install gtools)
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chentibiao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

Raymond
Stata 17.0, MP(4)
沙发
黃河泉 在职认证  发表于 2021-1-16 07:46:46 |只看作者 |坛友微信交流群
似乎也可以用 (ssc install gtools)
  1. sysuse auto, clear
  2. gcollapse price mpg, by(foreign) labelformat(#sourcelabel#)
复制代码

使用道具

藤椅
zdlspace 学生认证  发表于 2021-1-16 14:33:53 |只看作者 |坛友微信交流群
谢谢黄老师,我这是抛砖引玉啊,引出了gcollapse命令,感谢,学到了

使用道具

板凳
zhang1969 发表于 2021-1-16 18:07:01 |只看作者 |坛友微信交流群
黃河泉 发表于 2021-1-16 07:46
似乎也可以用 (ssc install gtools)
请问黄老师:为什么运行时出现Could not load plugin: D:\Stata15\ado\plus\g\gtools_windows_v3.plugin
(error occurred while loading _gtools_internal.ado)?采用ssc install gtools,replace重装后仍然是这样,不知如何解决?

使用道具

报纸
zdlspace 学生认证  发表于 2021-1-16 22:23:04 |只看作者 |坛友微信交流群
zhang1969 发表于 2021-1-16 18:07
请问黄老师:为什么运行时出现Could not load plugin: D:\Stata15\ado\plus\g\gtools_windows_v3.plugin
...
使用手机热点试试。另外,如果还不行,可能是Stata版本问题

使用道具

地板
黃河泉 在职认证  发表于 2021-1-17 07:37:34 |只看作者 |坛友微信交流群
zhang1969 发表于 2021-1-16 18:07
请问黄老师:为什么运行时出现Could not load plugin: D:\Stata15\ado\plus\g\gtools_windows_v3.plugin
...
我不清楚 (你是不是改过路径)。

使用道具

7
DΘstinyじò 发表于 2021-1-18 01:11:00 |只看作者 |坛友微信交流群
黃河泉 发表于 2021-1-16 07:46
似乎也可以用 (ssc install gtools)
又从黄老师这里学习了新的命令,

使用道具

8
zdlspace 学生认证  发表于 2021-3-23 02:21:25 |只看作者 |坛友微信交流群
zhang1969 发表于 2021-1-16 18:07
请问黄老师:为什么运行时出现Could not load plugin: D:\Stata15\ado\plus\g\gtools_windows_v3.plugin
...
请下载最新版的gtools即可。
  1. local github "https://raw.githubusercontent.com"
  2. net install gtools, from(`github'/mcaceresb/stata-gtools/master/build/)
复制代码

使用道具

9
LC, 发表于 2022-1-24 22:44:34 |只看作者 |坛友微信交流群
黃河泉 发表于 2021-1-16 07:46
似乎也可以用 (ssc install gtools)
请问黄老师,有没有什么命令可以把原来的变量都保留住?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 17:32