楼主: quwukong
1525 1

[mata问题求助] 生成网络关系network的mata代码问题 [推广有奖]

  • 0关注
  • 1粉丝

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.2001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
653 点
帖子
45
精华
0
在线时间
132 小时
注册时间
2015-6-9
最后登录
2024-11-8

楼主
quwukong 发表于 2020-10-12 18:46:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

各位前辈好~最近在写朋友关系的网络关系代码,用到stata的mata去写,但是有些问题。先附上我的代码:
  1. mata
  2. mata clear
  3. mata stata use "C:\Users\abc123\Desktop\network.dta",clear
  4. for g = 1(1)`group'{
  5.                 mata:  st_view(id1=., ., "id1")
  6.                 mata:  st_view(fid1=., ., "fid1")
  7.                 mata:  st_view(fid2=., ., "fid2")
  8.                 mata:  st_view(fid3=., ., "fid3")

  9.                 mata:  ID=J(rows(id1),rows(id1),0)
  10.                 mata:  w=J(rows(id1),rows(id1),0)
  11.                 mata:  fid=(fid1, fid2, fid3)
  12.                 mata:{
  13.                 for (i=1; i<=rows(id1); i++) {
  14.                             for (j=1; j<=rows(id1); j++) {                        
  15.                          ID[i,j] =id1[j]
  16.                                   for (k=1; k<=3; k++) {
  17.                                 if(ID[i,j]==fid[i,k]) w[i,j]=1                                                       
  18.                                 }                                                 
  19.                  }                   
  20.                  }
  21.                 }               
  22.                 mata: st_matrix("w",w)
  23.                 mata clear
  24.                 mata: svmat double w, names(w)
  25.                 mata drop id1 fid1 fid2 fid3 fid4 fid5
  26.                 mata: outsheet using C:\Users\abc123\Desktop\network`g'.dat, nonames replace
  27.                 mata: local g = `g' + 1
  28.                 }                       
  29. end
复制代码
系统提示了以下错误:
  1. for g = 1(1)`group'{
复制代码
① 'g' found where '(' expected

  1. mata: svmat double w, names(w)
复制代码
②'double' found where almost anything else expected

  1. mata drop id1 fid1 fid2 fid3 fid4 fid5
复制代码
③id1 not found (这个我很好奇为什么id1找不到呢)

  1. mata: outsheet using C:\Users\samue\Desktop\network`g'.dat, nonames replace
复制代码
④'using' found where almost anything else expected

  1. mata: local g = `g' + 1
复制代码
⑤'local' found where almost anything else expected

  1. }
复制代码
⑥expression invalid

就是这六个报错,还请各位赐教。

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int id1 float(group fid1 fid2 fid3)
  4. 10584 1     . 10566 10579
  5. 10568 1 10582 10564 10578
  6. 10583 1     .     .     .
  7. 10577 1 10574 10586     .
  8. 10579 1 10566 10581 10560
  9. 11056 1     .     .     .
  10. 10578 1     .     .     .
  11. 11089 1     .     .     .
  12. end
复制代码


  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int id1 float(group fid1 fid2 fid3)
  4. 10589 2 10612 10591 10597
  5. 10607 2 10609 10611 10603
  6. 11090 2     .     .     .
  7. 11064 2     .     .     .
  8. 10588 2     . 10590 10605
  9. 10593 2 10605 10599 10613
  10. 10604 2     .     .     .
  11. 10613 2 10593 10605 10594
  12. 10599 2 10605 10593 10594
  13. 10612 2 10602 10609 10611
  14. 11066 2     .     .     .
  15. end
复制代码


  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input int id1 float(group fid1 fid2 fid3)
  4. 10278 3 10292 10299     .
  5. 10284 3     .     .     .
  6. 10286 3 10309 10303     .
  7. 10291 3 10285 10292 10289
  8. 10302 3 10279 10304 10310
  9. 10308 3     . 10292 10290
  10. 10300 3 10283 10292 10301
  11. 10310 3 10304     . 10284
  12. end
复制代码




二维码

扫码加我 拉你入群

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

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

关键词:network Work MATA NET Mat

沙发
yanghan77777 发表于 2021-8-20 23:54:49
请教一个问题,在stata里面,可以对矩阵的单个元素进行条件函数的操作吗,比如说对满足一定条件的元素赋值

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 05:25