楼主: zdsysu
1770 7

[统计软件与数据分析] stata中如何合并数据 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

高中生

57%

还不是VIP/贵宾

-

威望
0
论坛币
62 个
通用积分
0.4500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
349 点
帖子
7
精华
0
在线时间
49 小时
注册时间
2019-7-15
最后登录
2023-8-24

楼主
zdsysu 发表于 2021-9-24 16:46:07 |AI写论文
20论坛币
表1
  

家庭收入

  

户主个人收入

家庭编号

年龄

性别

职业

  

XXX

  

--

A

--

--

--

  

--

  

XXX

A

XXX

XXX

XXX

  

XXX

  

--

B

--

--

--

  

--

  

XXX

B

XXX

XXX

XXX



表2
  

家庭收入

  

户主个人收入

家庭编号

年龄

性别

职业

  

XXX

  

XXX

A

XXX

XXX

XXX

  

XXX

  

XXX

B

XXX

XXX

XXX



手上有一数据,分别有家庭收入和户主收入的信息(如表1),如何合并成如图2那样的既包括家庭收入有包括户主信息的格式?

关键词:Stata tata 合并数据

沙发
湾仔2 学生认证  发表于 2021-9-25 14:11:29
先将家庭收入与户主收入分开,再以 家庭编号 进行merge, 应该可以的  

藤椅
Maggie_Wg 发表于 2021-9-26 21:54:59
也可以先让第一行的空值等于第二行数值,然后再删除家庭收入空值行。这个方法可能比较繁琐,好处就是不用创建新文档
具体代码:
replace 户主个人收入 = 户主个人收入[_n-1]  if 户主个人收入 == . (其他变量以此类推)
drop if 家庭收入 == .

板凳
加油呀! 发表于 2021-9-27 15:36:51
这个应该是用纵向合并命令(appending)  
use "D:\表1.dta",clear
append using "D:表2.dta"
save "D:\合并表.dta",replace
缺失值可以后面一起删除
下面这个是删除所有缺失值的命令
egen mis = rowmiss(_all)
drop if mis
drop mis

报纸
长大的不大2021 发表于 2021-10-2 18:39:55
用个其他软件先处理一下行不行

地板
Miuka。 学生认证  发表于 2021-10-10 11:03:03
use sheet1.dta,clear
keep if 户主个人收入 == .
save sheet_a.dta, replace

use sheet1.dta,clear
keep if 户主个人收入 ~= .

merge m:1 家庭编号 using "sheet_a.dta"
drop if _merge ~= 3
drop _merge

_____________________________________
大概如上吧

7
ajianying1 发表于 2021-10-19 09:10:20
以家庭编码我唯一标识,采用merge进行匹配即可

8
可爱的铃铛 在职认证  发表于 2023-2-15 12:10:57
use data1, clear
merge m:m(一般为1:1,一个对应一个,变量唯一) var1var2 using data2(复制路径)
drop if _merge==2
drop if _merge==1
drop _merge   (keep merge==3保留)

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-11 00:45