784 2

[数据管理求助] 使用mata模式在stata中合并数据 [推广有奖]

  • 0关注
  • 0粉丝

本科生

24%

还不是VIP/贵宾

-

威望
0
论坛币
30794 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
187 点
帖子
17
精华
0
在线时间
151 小时
注册时间
2020-8-15
最后登录
2024-1-23

楼主
勤劳的飞呀飞 发表于 2021-11-28 00:32:17 |AI写论文
1000论坛币
1.png
上述图片是原始数据,原始数据的特点:
(1)总共6个观测值。以sf和ds分类的话,依次可发现sf相同,ds相同的观测值分别为3、2和1个。
2.png
上述数据集是想要得到的数据集。总共为36个观测值。
即,每个观测值都要与其他观测值匹配一下。
从而,可能会用到for的循环语句。但是,当样本量巨大时,从而for的循环数量不确定时,可能无法使用循环命令。
所以,我的想法是用mata,通过矩阵模式进行配对。
难点——数据的观测值都是字符型,或者,字符与数值混合型。所以,可能比较困难。

1.png (19.6 KB)

1.png

关键词:Stata tata MATA 合并数据 Mat

沙发
黃河泉 在职认证  发表于 2021-11-28 10:24:40
这似乎看起来是有关 pairs 之问题,请看看 https://www.stata.com/support/fa ... asets-to-all-pairs/

藤椅
逍遥梦蝶 发表于 2021-11-28 12:34:25
  1. clear
  2. input obs num str10 (sf ds xq)
  3. 1 3 "山东" "威海" "文登"
  4. 2 3 "山东" "威海" "乳山"
  5. 3 3 "山东" "威海" "荣成"
  6. 4 2 "山东" "东营" "广饶"
  7. 5 2 "山东" "东营" "垦利"
  8. 6 1 "浙江" "杭州" "萧山"
  9. end
  10. save raw, replace


  11. use raw, clear
  12. rename (sf ds xq) (sf1 ds1 xq1)
  13. cross using raw
  14. sort obs
  15. rename (sf ds xq) (sf2 ds2 xq2)
  16. drop obs num
  17. list, sep(6)
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
黃河泉 + 3 + 3 + 3 精彩帖子

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

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

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