楼主: orange9042
15566 11

[数据管理求助] 关于多对多合并数据 [推广有奖]

  • 1关注
  • 6粉丝

博士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
1983 个
通用积分
24.0180
学术水平
1 点
热心指数
4 点
信用等级
1 点
经验
2377 点
帖子
133
精华
0
在线时间
144 小时
注册时间
2009-9-21
最后登录
2020-1-4

楼主
orange9042 在职认证  发表于 2012-11-28 15:37:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我先有三份从CHNS上下载的数据
1)adult信息
2)child 信息
3)household信息
三个数据共有的变量有很多
我希望用来匹配的变量是: HHID:表示家庭的ID; COMMID:表示社区的ID
那么其他共有的变量,比如LINE:表示个人在家庭中的编码(adult和child数据里都有此变量,但对于同一个HHID,两个数据里的LINE变量取值不同)
那么这种情况下用HHID和COMMID来对adult信息和child信息进行m:m的合并,LINE变量中的数据会被替代么?
不知我的问题描述清楚了么?还请高手指教下
二维码

扫码加我 拉你入群

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

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

关键词:合并数据 household commid Adult House household 信息

沙发
orange9042 在职认证  发表于 2012-11-28 16:04:41
补充说明一下:
adult中数据:
hhid06           commid06     line06
211101003    211101         101
211101008    211101            1
211101008    211101            2
211101008    211101            3


child中的数据:
hhid06            commid06     line06
211101003     211101        102
211101008     211101         61
211101008     211101         69

我希望合并后的效果是:
hhid06           commid06     line06
211101003    211101         101
211101003     211101        102
211101008    211101            1
211101008    211101            2
211101008    211101            3
211101008     211101         61
211101008     211101         69

该怎么做呢?
试了一下merge m:m
发现不行,同样是hhid06  为211101003 line06为102的来自child的数据不见了,麻烦高手指教一下吧,很急




藤椅
ywh19860616 发表于 2012-11-28 16:36:58
orange9042 发表于 2012-11-28 16:04
补充说明一下:
adult中数据:
hhid06           commid06     line06
merge m:m hhid06 using us.dta,assert(match)

加上这个 option
assert(match)
已有 1 人评分学术水平 热心指数 收起 理由
SpencerMeng + 1 + 1 精彩帖子

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

一份耕耘,一份收获。

板凳
orange9042 在职认证  发表于 2012-11-28 16:40:50
ywh19860616 发表于 2012-11-28 16:36
merge m:m hhid06 using us.dta,assert(match)

加上这个 option
好的,我试一下,谢谢!

报纸
orange9042 在职认证  发表于 2012-11-28 17:05:17
ywh19860616 发表于 2012-11-28 16:36
merge m:m hhid06 using us.dta,assert(match)

加上这个 option
试了,可是不行,出现了
merge:  after merge, all observations not matched and conflicting
        (merged result left in memory)
这样的提示,不知道是哪里出了问题

地板
ywh19860616 发表于 2012-11-28 18:09:22
orange9042 发表于 2012-11-28 17:05
试了,可是不行,出现了
merge:  after merge, all observations not matched and conflicting
        ...
我这里是可以的

你运行完后,先不管提示,运行
list

试试。
一份耕耘,一份收获。

7
蓝色 发表于 2012-11-28 23:19:57
是append命令
不是merge

8
orange9042 在职认证  发表于 2012-11-28 23:44:37
蓝色 发表于 2012-11-28 23:19
是append命令
不是merge
请问下 data1 里包含变量 y x1 x2 x3 x5
          data2 里包含变量 y x1 x2 x4 x6
这样如果用append,后面有不同的变量也没关系么?

9
蓝色 发表于 2012-11-28 23:56:57 来自手机
你执行一下就知道了

10
orange9042 在职认证  发表于 2012-11-30 20:39:35
蓝色 发表于 2012-11-28 23:19
是append命令
不是merge
我完成了数据的合并,谢谢您的提醒。可是现在又有个新的问题。
就是我的目标是研究影响儿童健康的因素,其父母的一些特征作为控制变量,可是现在合并起来之后我发现child和adult的都混在一起了,如下表,前两个是孩子,后两个是父母。那我如何在回归孩子的时候,把下两行父母的信息作为控制变量加入呢?我觉得肯定不能直接就拿child的那些回归,可是不知怎么做。

hhid06           commid06     line06
211101008    211101            2
211101008    211101            3
211101008     211101         61
211101008     211101         69

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

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