楼主: extensive58
41350 11

[其他] 急切求助:数据合并出现的错误 [推广有奖]

  • 0关注
  • 0粉丝

已卖:15份资源

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
213 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1803 点
帖子
45
精华
0
在线时间
162 小时
注册时间
2007-6-13
最后登录
2015-8-31

楼主
extensive58 发表于 2010-5-24 15:48:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
输入命令:merge m:1 stk  acc  using "D:\Stata11\ttlda.dta"
出现如下错误提示:variables stkcd accper2 do not uniquely identify observations in the using data
请问各位什么意思,如何解决?
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:数据合并 observations observation Variables Variable identify 如何

沙发
houquan 发表于 2010-5-24 16:20:31
stkcd accper2 这两个变量,不能唯一确定using data里面的样本。

举例:
stkcd acc
1          1
1          2
2          3
2          4
3          5
3          5


最后两个observations,就没有办法用stkcd accper这两个变量来区分。


至于怎么处理,要看你的目的和你的数据。不知道 m:m merge是否适用?
We all love to instruct, though we can teach only what is not worth knowing. -- J. Austen

藤椅
extensive58 发表于 2010-5-24 17:31:07
谢谢您的解答。
我的数据结构如下:主数据表
Stk                  Acc                           Indcd        A         B         C
000001        2004-12-31        I01        0        0        0
000001        2005-12-31        I01        0        0        0
000001        2006-12-31        I01        0        0        0
000001        2007-12-31        I01        0        0        0
000001        2008-12-31        I01        0        0        0
000001        2009-12-31        I01        0        0        0
000002        2004-12-31        J01        0        0        0
000002        2005-12-31        J01        0        0        0
000002        2006-12-31        J01        0        0        0
000002        2007-12-31        J01        0        0        0
000002        2008-12-31        J01        0        0        0
000002        2009-12-31        J01        0        0        0
合并的数据表结构:
Stk               Acc                T
000001        2004-12-31        -0.084574
000001        2005-12-31        0.213798
000001        2006-12-31        2.704307
000001        2007-12-31        1.03384
000001        2008-12-31        -0.76828
000001        2009-12-31        7.192903
000002        2004-12-31        0.612774
000002        2005-12-31        0.570613
000002        2006-12-31        0.610436
000002        2007-12-31        1.303504
000002        2008-12-31        -0.127434
000002        2009-12-31        0.385817
000004        2004-12-31        -1.429625
根据stata合并要求,若variable 为Stk  、 Acc
那就应该是merge m:1 stk  acc  using "D:\Stata11\ttlda.dta"呀
不应采用m:m。
但我用m:m能给出结果。
请问这是什么原因呢?

板凳
extensive58 发表于 2010-5-24 17:39:32
难道是我的数据有误。

报纸
蓝色 发表于 2010-5-24 17:44:31
m:m 应该可以包含m:1的这个类型的数据吧

地板
houquan 发表于 2010-5-24 18:15:15
4# extensive58
set more off

cd c:\data

clear

input str6 Stk str10 Acc str3 Indcd A B C
000001 2004-12-31 I01 0 0 0
000001 2005-12-31 I01 0 0 0
000001 2006-12-31 I01 0 0 0
000001 2007-12-31 I01 0 0 0
000001 2008-12-31 I01 0 0 0
000001 2009-12-31 I01 0 0 0
000002 2004-12-31 J01 0 0 0
000002 2005-12-31 J01 0 0 0
000002 2006-12-31 J01 0 0 0
000002 2007-12-31 J01 0 0 0
000002 2008-12-31 J01 0 0 0
000002 2009-12-31 J01 0 0 0
end

save input.dta, replace

list

clear

input str6 Stk str10 Acc T
000001 2004-12-31 -0.084574
000001 2005-12-31 0.213798
000001 2006-12-31 2.704307
000001 2007-12-31 1.03384
000001 2008-12-31 -0.76828
000001 2009-12-31 7.192903
000002 2004-12-31 0.612774
000002 2005-12-31 0.570613
000002 2006-12-31 0.610436
000002 2007-12-31 1.303504
000002 2008-12-31 -0.127434
000002 2009-12-31 0.385817
000004 2004-12-31 -1.429625
end

save input1.dta, replace

use input, clear
list

use input1, clear
list

use input, clear
merge m:1 Stk Acc using input1

list
We all love to instruct, though we can teach only what is not worth knowing. -- J. Austen

7
jzhyue 发表于 2010-5-24 19:48:10
merge m:1 stk  acc  using "D:\Stata11\ttlda.dta"
若用此命令:m:1,the using data 的id必须唯一,即在 using "D:\Stata11\ttlda.dta"中stk  acc 必须是唯一的。
可以打开 "D:\Stata11\ttlda.dta"
duplicates drop stk acc

8
extensive58 发表于 2010-5-24 21:22:14
谢谢搂主,确实是我的数据出了问题。
再次感谢!

9
黑皮1991 发表于 2017-6-29 16:29:57
extensive58 发表于 2010-5-24 17:31
谢谢您的解答。
我的数据结构如下:主数据表
Stk                  Acc                           Indcd        A         B          ...
施主,今天在做数据的时候出现了和你类似的问题,后来用 stata14里merge m:m stk reptdt using a4.dta 做出来了,除了你最后说的数据粘贴问题外,我感觉用m:m,是你两个表中都有stk和reptdt(acc),但是主表里更连续、更全,从表里多是断断续续的,用m:m,软件自动匹配,以主表为准,从表按主表匹配,没有的地方以空格列示,所以m:m也是可以的,不知道这样的回答能否帮到你

10
luan1uan 发表于 2018-6-18 17:30:00
黑皮1991 发表于 2017-6-29 16:29
施主,今天在做数据的时候出现了和你类似的问题,后来用 stata14里merge m:m stk reptdt using a4.dta 做 ...
我今天遇到一模一样的问题,用了各种方法都没有成功直到使用m:m的merge之后,合并后的数据出现了大量断档以及空格,结果还是不利于分析与进一步数据处理的,出现这种问题要考虑一下是否是在之前的数据收集步骤出了什么问题。

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

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