楼主: costmanagement
6722 19

数据合并哪里错了? [推广有奖]

11
costmanagement 发表于 2011-5-1 23:27:52
请看附件,要按name1.dta来合并,谢谢!

dat.rar
下载链接: https://bbs.pinggu.org/a-900863.html

9.13 KB

本附件包括:

  • cash.dta
  • name1.dta

12
sungmoo 发表于 2011-5-1 23:36:14
costmanagement 发表于 2011-5-1 23:27 请看附件,要按name1.dta来合并
可否把话说得完整、详细些?什么叫“按name1.dta合并”?

13
sungmoo 发表于 2011-5-1 23:37:25
提问时,不能假设别人的大脑中天然装有了自己前在的思路。

14
sungmoo 发表于 2011-5-1 23:39:02
你上传的文件中,哪个是dat1哪个是dat2,你想要怎样的结果(合并原则)?

15
costmanagement 发表于 2011-5-2 00:14:44
抱歉抱歉! 刚才是举的简单例子。 这么晚了您还在为民众排忧解难,感动,俺是没办法。name1.dta就是dta1,是小数据; cash.dta,就是dat2,是大数据。现在要按name1.dat数据的number 和date合并.

16
sungmoo 发表于 2011-5-2 00:55:59
costmanagement 发表于 2011-5-1 21:09 用了这个命令,问题是最后合并的个数多于dat1,小于dat2。我需要的个数是与dat1一样的
cash中有(对于各变量完全相同的)重复观测值:共有100个观测值涉及重复;

name1中无重复观测值。

去除cash中的重复观测值后,cash共有1900个观测值;name1共有1000个观测值。

其中,对于number与date的观测值而言,cash与name1共有的(可匹配的)观测值有608个;仅cash有的观测值1292个;仅name1有的观测值392个。

你要舍弃仅cash有的1292个观测值吗?

use cash,clear
duplicates drop
joinby number date using name1, unm(u)
recode cash(.=0)


本题其实是一个很简单的问题:cash有重复观测值。然而,如果不给出完整的数据库,(仅就楼主最初给的数据而言)这一问题是无法发现与解决的。

如果楼主一开始就把完整的数据库给出来,并说明:要按(两数据库共有的)某些关键变量匹配合并两数据库,且去除仅某库具有的不匹配观测值,就不必费这么大周折了。
已有 1 人评分学术水平 热心指数 收起 理由
wajndqgl + 1 + 1 斑竹就是斑竹

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

17
costmanagement 发表于 2011-5-2 01:43:56
我要保留name1.dta的所有数,没有匹配上的cash设为0.

18
costmanagement 发表于 2011-5-2 01:51:18
我是不是先将缺失值用0代替后在合并?这样name1合并的数都保留?

19
wpwpwppopo 发表于 2011-5-2 14:05:05
版主热心,

20
costmanagement 发表于 2011-5-2 20:33:07
Bingo,非常感谢Sungmoo的耐心详细的回答!!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-19 02:33