楼主: stataxsd
1387 7

[数据管理求助] 以家庭为分类变量,保留其中一行,条件为孩子年龄最小。 [推广有奖]

  • 1关注
  • 0粉丝

本科生

71%

还不是VIP/贵宾

-

威望
0
论坛币
20579 个
通用积分
6.0980
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1169 点
帖子
74
精华
0
在线时间
60 小时
注册时间
2019-6-23
最后登录
2023-1-2

楼主
stataxsd 发表于 2019-8-30 18:51:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
下面第一和第二个家庭的第一行是我想保留的,第三个家庭直接保留。谢谢!
* Example generated by -dataex-. To install: ssc install dataex
clear
input byte(家庭 成人) int(孩子1 孩子2) byte(孩子3 孩子4 孩子5)
1 11 1991 2008 . . .
1 12 1978 1980 . . .
2 21 1990 1998 . . .
2 22 1978 1876 . . .
2 23 1957 1954 . . .
2 24 1990 1992 . . .
3 31 2001    . . . .
end

二维码

扫码加我 拉你入群

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

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


回帖推荐

蓝色 发表于2楼  查看完整内容

沙发
蓝色 发表于 2019-8-30 21:10:06
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input byte(家庭 成人) int(孩子1 孩子2) byte(孩子3 孩子4 孩子5)
  4. 1 11 1991 2008 . . .
  5. 1 12 1978 1980 . . .
  6. 2 21 1990 1998 . . .
  7. 2 22 1978 1876 . . .
  8. 2 23 1957 1954 . . .
  9. 2 24 1990 1992 . . .
  10. 3 31 2001    . . . .
  11. end

  12. egen tmax = rowmax(孩子1-孩子5)
  13. bysort 家庭: egen  tmax0=max(tmax)
  14. keep if tmax0==tmax
  15. list
复制代码

  1. . * Example generated by -dataex-. To install: ssc install dataex
  2. . clear

  3. . input byte(家庭 成人) int(孩子1 孩子2) byte(孩子3 孩子4 孩子5)

  4.        家庭    成人   孩子1   孩子2   孩子3   孩子4   孩子5
  5.   1. 1 11 1991 2008 . . .
  6.   2. 1 12 1978 1980 . . .
  7.   3. 2 21 1990 1998 . . .
  8.   4. 2 22 1978 1876 . . .
  9.   5. 2 23 1957 1954 . . .
  10.   6. 2 24 1990 1992 . . .
  11.   7. 3 31 2001    . . . .
  12.   8. end

  13. .
  14. . egen tmax = rowmax(孩子1-孩子5)

  15. . bysort 家庭: egen  tmax0=max(tmax)

  16. . keep if tmax0==tmax
  17. (4 observations deleted)

  18. . list

  19.      +--------------------------------------------------------------------+
  20.      | 家庭   成人   孩子1   孩子2   孩子3   孩子4   孩子5   tmax   tmax0 |
  21.      |--------------------------------------------------------------------|
  22.   1. |    1     11    1991    2008       .       .       .   2008    2008 |
  23.   2. |    2     21    1990    1998       .       .       .   1998    1998 |
  24.   3. |    3     31    2001       .       .       .       .   2001    2001 |
  25.      +--------------------------------------------------------------------+
复制代码


藤椅
stataxsd 发表于 2019-8-31 09:24:53
蓝色 发表于 2019-8-30 21:10
前辈的意思不是我想要的,但还是谢谢您

板凳
蓝色 发表于 2019-8-31 09:29:39 来自手机
我那个命令就是实现了你说的

为什么不是你要的

报纸
stataxsd 发表于 2019-8-31 09:37:25
蓝色 发表于 2019-8-31 09:29
我那个命令就是实现了你说的

为什么不是你要的
谢谢前辈的点拨,解决了,应该是这样,egen tmax = rowmax(tb1y_a_c1-tb1y_a_c5)
bysort fid16: egen  tmax0=max(tmax)

keep if tmax0==tmax
duplicates        drop        fid16,        force

地板
stataxsd 发表于 2019-8-31 09:38:14
需要多加一个duplicates drop var, force.所以谢谢您!!

7
蓝色 发表于 2019-8-31 09:41:32 来自手机
那是你的样本数据没有代表性

你的数据没有一户多个一样的
所以就没有写dup那一句



8
stataxsd 发表于 2019-8-31 10:08:44
蓝色 发表于 2019-8-31 09:41
那是你的样本数据没有代表性

你的数据没有一户多个一样的
是的,是我的失误,不好意思

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-3-5 20:09