全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7219 9
2011-06-01
悬赏 100 个论坛币 已解决
是不是字符变量不适合做merge时候的key variable?
用的是stata11

. use 07acqswitch.dta,clear
. sort deal_no xadv_code
. merge deal_no xadv_code using 04acq_loyalty.dta
(note: you are using old merge syntax; see [R] merge for new syntax)
variables deal_no xadv_code do not uniquely identify observations in the master data
variables deal_no xadv_code do not uniquely identify observations in 04acq_loyalty.dta

事实上,我试过下面的语句,
use 07acqswitch.dta,clear
bysort deal_no xadv_code:gen y=_n
发现出来的出来的y都是1,这足以证明deal_no xadv_code能uniquely identify observations。但是为什么会有上面的出错信息?

另外,有没有比较简单的检查是不是uniquely identify observations的命令?

最佳答案

sungmoo 查看完整内容

*以下过程不存在提示信息: clear inp y str1 z w 1 a 4 2 b 5 3 c 6 end sort y z save b,replace clear inp x y str1 z 5 1 d 6 2 b 7 3 c 8 4 a end sort y z mer y z using b
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-1 21:35:40
*以下过程不存在提示信息:
clear
inp y str1 z w
1 a 4
2 b 5
3 c 6
end
sort y z
save b,replace
clear
inp x y str1 z
5 1 d
6 2 b
7 3 c
8 4 a
end
sort y z
mer y z using b
二维码

扫码加我 拉你入群

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

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

2011-6-1 21:49:21
我觉得 “字符变量是可以做key variable的”请看下面这个网页里的举例(I think id is numeric, name is character):
http://kb.iu.edu/data/azck.html
use stat.dta, clear
sort id name
save stat.dta, replace


use math.dta, clear
sort id name


merge 1:1 id name using stat.dta


我认为:问题的关键是key variable在两个datasets内要等同。

另外,给你提供以下更多的网页资料作参考!
http://www.stata.com/help.cgi?merge
http://staff.washington.edu/glynn/statamrg.pdf
http://www.ats.ucla.edu/stat/stata/faq/multmerge.htm
http://www.swisspanel.ch/IMG/pdf/data_management_shp_stata11.pdf
http://userwww.service.emory.edu/~erein/courses/pols508/stata-programming-II.pdf
http://www.rpi.edu/~simonk/pdf/UsefulStataCommands.pdf
http://rlab.lse.ac.uk/data/statacourse/Lec2_a.pdf
http://fmwww.bc.edu/gstat/docs/merge.html
二维码

扫码加我 拉你入群

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

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

2011-6-2 06:11:05
econfj 发表于 2011-6-1 21:35
(note: you are using old merge syntax; see [R] merge for new syntax)
variables deal_no xadv_code do not uniquely identify observations in the master data
variables deal_no xadv_code do not uniquely identify observations in 04acq_loyalty.dta

事实上,我试过下面的语句,
use 07acqswitch.dta,clear
bysort deal_no xadv_code:gen y=_n
发现出来的出来的y都是1,这足以证明deal_no xadv_code能uniquely identify observations。但是为什么会有上面的出错信息?
最好把你的数据贴出来,并且清楚说明你想要的结果。

https://bbs.pinggu.org/thread-1089388-2-1.html是一个典型)
二维码

扫码加我 拉你入群

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

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

2011-6-2 06:36:38
econfj 发表于 2011-6-1 21:35 用的是stata11
. use 07acqswitch.dta,clear
. sort deal_no xadv_code
. merge deal_no xadv_code using 04acq_loyalty.dta
(note: you are using old merge syntax; see [R] merge for new syntax)
variables deal_no xadv_code do not uniquely identify observations in the master data
variables deal_no xadv_code do not uniquely identify observations in 04acq_loyalty.dta
你还要看一下,出现后面这段文字后,命令是否仍执行,或者虽执行但得不到你想要的结果。
二维码

扫码加我 拉你入群

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

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

2011-6-10 22:10:47
4# sungmoo

出现后面这段文字后,命令是否仍执行,或者虽执行但得不到你想要的结果。
>命令仍然执行,等到想要的结果,这是一个1:1的merger,

假设左边的数据集合是x y z,右边是y z w。
我用bysort: x y:gen cnt=_n   结果出来的cnt都是1,这证明左边的数据集合是unique identified的。
右边得到同样的结果,
就是用 y z做key variable的时候,merge的过程出现上面那段文字。

y 是数字变量,z是字符变量。

这几天去开会,没上网:)
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群