楼主: HannibalJ
6331 3

[数据管理求助] 怎么把一个数据文件拆分成两个? [推广有奖]

  • 0关注
  • 0粉丝

已卖:9份资源

高中生

87%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
160 点
帖子
18
精华
0
在线时间
38 小时
注册时间
2013-7-14
最后登录
2018-5-31

楼主
HannibalJ 发表于 2015-4-13 16:00:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
A B 是两个人。现在有两个dta文件,分别是今年的和去年的。
今年
变量x  y  z       t
A     1  2  3   2015
B     6  7  8   2015

去年
变量 x  y  z      t
A      2  3  4   2014
B      7  8  9   2014
如何整理为两个文件:
A
变量  x  y  z     t
         1  2  3  2015
         2  3  4  2014
B
变量  x  y  z     t
         6  7  8  2015
         7  8  9  2014

二维码

扫码加我 拉你入群

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

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

关键词:数据文件 DTA文件 dta 2014 如何

沙发
SpencerMeng 在职认证  发表于 2015-4-21 16:43:18
楼主好,其实这个问题并不难。

巧用preserve和restore连用会更简便。

代码如下:
  1. *先生成并保存一份今年的数据
  2. clear
  3. inp str2 id x y z t
  4. a 1 2 3 2015
  5. b 6 7 8 2015
  6. end
  7. save afteryear,replace
  8. *生成往年的数据,并并入今年的数据
  9. clear
  10. inp str2 id x y z t
  11. a 2 3 4 2014
  12. b 7 8 9 2014
  13. end

  14. append using afteryear //并入今年的数据

  15. sort id

  16. preserve
  17. drop if id=="a"
  18. save  varb,replace
  19. resore

  20. preserve
  21. drop if id=="b"
  22. save  vara,replace
  23. resore

  24. use vara,clear
  25. use varb,clear
复制代码
已有 2 人评分论坛币 学术水平 收起 理由
夏虫可以语冰 + 1 热心帮助其他会员
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 1   查看全部评分

藤椅
HannibalJ 发表于 2015-4-27 09:24:56
SpencerMeng 发表于 2015-4-21 16:43
楼主好,其实这个问题并不难。

巧用preserve和restore连用会更简便。
如果我不仅是a b 而是a b c d e f g h i j k l m n o p q r s t u v w x y z呢 是不是要用好多个drop?

板凳
SpencerMeng 在职认证  发表于 2015-4-28 08:12:43
HannibalJ 发表于 2015-4-27 09:24
如果我不仅是a b 而是a b c d e f g h i j k l m n o p q r s t u v w x y z呢 是不是要用好多个drop?
不好意思,楼主,回复晚了。。

如果您变量多的话,用循环语句生产多个dta吧:

代码如下:
  1. *先生成并保存一份今年的数据
  2. clear
  3. inp str2 id x y z t
  4. a 1 2 3 2015
  5. b 6 7 8 2015
  6. c 2 3 5 2015
  7. end
  8. save afteryear,replace
  9. *生成往年的数据,并并入今年的数据
  10. clear
  11. inp str2 id x y z t
  12. a 2 3 4 2014
  13. b 7 8 9 2014
  14. c 3 4 6 2014
  15. end

  16. append using afteryear //并入今年的数据

  17. sort id

  18. levelsof id,local(level1)

  19. foreach x of local level1 {
  20. preserve
  21. keep if id=="`x'"
  22. save file`x',replace  //注意file与‘x'之间没有空格
  23. restore
  24. }

  25. use filea,clear
  26. use fileb,clear
  27. use filec,clear
复制代码

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 06:52