楼主: xuehe
2456 9

[数据管理求助] CHNS纵列数据合并出错,请问怎么原因? [推广有奖]

贵宾

已卖:14807份资源

学术权威

87%

还不是VIP/贵宾

-

威望
8
论坛币
577224 个
通用积分
483.1962
学术水平
370 点
热心指数
366 点
信用等级
207 点
经验
356065 点
帖子
4313
精华
8
在线时间
2646 小时
注册时间
2004-12-31
最后登录
2025-12-16

楼主
xuehe 发表于 2015-3-27 00:45:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

cdD:\CHNStata

use c12hhinc.dta
sort hhidcommid wave

bys hhid commid wave: g n=_n
bys hhidcommid wave: g N=_N

keepif n==N
drop nN
sort hhidcommid wave

save temp1
clear
use
m12hlth.dta
sort hhidcommid wave

bys hhid commid wave: g n=_n
bys hhidcommid wave: g N=_N

keepif n==N
drop nN
sort hhidcommid wave

save temp2
use temp1

merge1:1 hhid commid wave using temp2
drop_merge
erasetemp1.dta
erasetemp2.dta

savehhinc_health


二维码

扫码加我 拉你入群

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

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

关键词:数据合并 CHNS CHN commid Health

沙发
xuehe 发表于 2015-3-27 00:47:28
merge 1:1 hhid commid wave using temp2
1 invalid name
r(198);

藤椅
SpencerMeng 在职认证  发表于 2015-3-27 08:45:01
xuehe 发表于 2015-3-27 00:47
merge 1:1 hhid commid wave using temp2
1 invalid name
r(198);
您好,根据报错提示说数字1是不合法的变量名。

请您查看下两个dta中有没有变量名是1的变量。

stata规定“数字”不能占变量名的第一个位置,比如5shanghai是不对的,而shanghai5就可以。

板凳
xuehe 发表于 2015-3-27 23:59:28
https://bbs.pinggu.org/thread-1391565-3-1.html
别人介绍这样写的!

报纸
xuehe 发表于 2015-3-28 00:06:50
merge 1:1 country year using ,nogen
如果出错,那是你的数据有误:同一年度同一国家出现两次或两次以上的观测
不知道drop有没有错。回答的没说到点。

地板
蓝色 发表于 2015-3-28 06:27:35 来自手机
提供数据在讨论

7
xuehe 发表于 2015-3-31 00:19:05
m12hlth.dta (11.26 MB)
c12hhinc.dta (6.19 MB)


8
xuehe 发表于 2015-3-31 00:20:04
已经提供,请帮助思考?

9
蓝色 发表于 2015-3-31 07:18:54
没有问题啊,你用的什么版本statastata12以前的merge命令是不同的



. use c12hhinc.dta

. sort hhid commid wave

. bys  hhid commid wave: g n=_n

. bys  hhid commid wave: g N=_N

.
. keep if n==N
(0 observations deleted)

. drop n N

.
. sort hhid commid wave

. save temp1
file temp1.dta saved

.
. clear

. use m12hlth.dta

. sort hhid commid wave

. bys  hhid commid wave: g n=_n

. bys  hhid commid wave: g N=_N

. keep if n==N
(74921 observations deleted)

. drop n N

. sort hhid commid wave

. save temp2
file temp2.dta saved

.
. use  temp1,clear

. merge 1:1 hhid commid wave using temp2

    Result                           # of obs.
    -----------------------------------------
    not matched                         3,868
        from master                     2,172  (_merge==1)
        from using                      1,696  (_merge==2)

    matched                            35,736  (_merge==3)
    -----------------------------------------


. drop _merge

. erase temp1.dta

. erase temp2.dta



已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
xuehe + 100 + 5 + 5 + 5 精彩帖子

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

10
xuehe 发表于 2015-4-1 20:27:18
thanks so much。初步测试ok也。

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

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