楼主: 香香电
3984 3

[数据管理求助] stata中如何进行组内两两配对 [推广有奖]

  • 0关注
  • 1粉丝

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
13 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2182 点
帖子
11
精华
0
在线时间
29 小时
注册时间
2012-12-20
最后登录
2020-8-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想要进行组内两两配对,如何实现,跪求!

例如:
name          person              person2
A                   刘                       刘   
A                   张                      张
A                   刘                     刘
B                  胡                     胡
B                 张                      张
B                 李                     李

想要得到如下结果:
name          person           person2
A                   刘                     刘
A                   刘                     张(new)
A                   张                     张
A                   张                     刘(new)
A                   刘                    刘
B                  胡                       胡
B                  胡                       张(new)
B                  胡                       李(new)
B                 张                        张
B                 张                        胡(new)

B                  张                      李(new)
B                   李                     李
B                  李                      胡(new)
B                 李                      张(new)

由于我本来想要配对同一个name下的person,两个不同person配对;但是在一列里面,所以我自己能想到的是gen person2=person,这样将两列fillin一下。但是就是不知道怎么固定A,fillin;再固定B,fillin。求大神解答!或者有更好的方法也非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Person name fill 如何

沙发
yulong0418 发表于 2019-8-19 16:21:10 |只看作者 |坛友微信交流群
joinby

使用道具

藤椅
我是梅梅 发表于 2021-5-23 11:15:48 |只看作者 |坛友微信交流群
joinby命令实现

使用道具

板凳
黃河泉 在职认证  发表于 2021-5-23 11:46:48 |只看作者 |坛友微信交流群
试试
  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input str6(name person person2)
  4. "A" "刘" "刘"
  5. "A" "张" "张"
  6. "A" "刘" "刘"
  7. "B" "胡" "胡"
  8. "B" "张" "张"
  9. "B" "李" "李"
  10. end

  11. duplicates drop name person person2, force

  12. preserve
  13. drop person2
  14. tempfile a
  15. save `a'
  16. restore

  17. drop person
  18. joinby using `a'
复制代码
其结果为:
  1. . list, sepby(name)

  2.      +-------------------------+
  3.      | name   person2   person |
  4.      |-------------------------|
  5.   1. |    A        刘       刘 |
  6.   2. |    A        刘       张 |
  7.   3. |    A        张       张 |
  8.   4. |    A        张       刘 |
  9.      |-------------------------|
  10.   5. |    B        胡       胡 |
  11.   6. |    B        胡       张 |
  12.   7. |    B        胡       李 |
  13.   8. |    B        张       张 |
  14.   9. |    B        张       胡 |
  15. 10. |    B        张       李 |
  16. 11. |    B        李       胡 |
  17. 12. |    B        李       张 |
  18. 13. |    B        李       李 |
  19.      +-------------------------+
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
wz琪琪琪琪 + 1 + 1 + 1 观点有启发
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 09:24