楼主: ming4733733
1154 2

[数据管理求助] stata数据处理高手请进!! [推广有奖]

已卖:1899份资源

教授

4%

还不是VIP/贵宾

-

威望
0
论坛币
70785 个
通用积分
837.1593
学术水平
74 点
热心指数
101 点
信用等级
76 点
经验
34123 点
帖子
333
精华
0
在线时间
1717 小时
注册时间
2007-12-26
最后登录
2026-1-9

楼主
ming4733733 在职认证  发表于 2015-7-15 21:29:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有两个变量的数据,我要将其转换成矩阵的形式,数据的意思如下,列如id304有两个邻居,分别是306和305,id305有三个邻居,分别是304、296和314。现在要做的工作是把表一转换成表二的形式。304与306是邻居,则行与列相交处用1表示,否则用0表示,当然自己跟自己也是用0表示;同样的304与305是邻居,行列相交处也是用1表示,依此类推305有三个邻居,与304相交于1,与296相交于1,与314相交于1。最后形成的是一个对称矩阵形式。
表一:
     idnid

304

306

304

305

305

304

305

296

305

314

314

305

317

313

313

312

313

317

306

304

296

302

296

299

296

305

302

299

302

296

302

308

302

303

302

307

299

302

299

308

299

303

299

296

299

307

308

303

308

307

308

299

308

302

308

310

308

297

308

300


表二

304

305

314

317

312

313

306

296

302

299

304

0

1

1

305

1

0

1

1

314

1

0

317

0

312

313

306

1

296

1

302

299

308


二维码

扫码加我 拉你入群

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

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

关键词:stata数据处理 STATA数据 Stata 数据处理 tata

回帖推荐

andruw 发表于2楼  查看完整内容

沙发
andruw 在职认证  发表于 2015-7-15 22:34:38
  1. clear
  2. input id nid
  3. 304 306
  4. 304 305
  5. 305 304
  6. 305 296
  7. 305 314
  8. 314 305
  9. 317 313
  10. 313 312
  11. 313 317
  12. 306 304
  13. 296 302
  14. 296 299
  15. 296 305
  16. 302 299
  17. 302 296
  18. 302 308
  19. 302 303
  20. 302 307
  21. 299 302
  22. 299 308
  23. 299 303
  24. 299 296
  25. 299 307
  26. 308 303
  27. 308 307
  28. 308 299
  29. 308 302
  30. 308 310
  31. 308 297
  32. 308 300
  33. end

  34. gen neighbor = 1

  35. cd "E:/"
  36. save test.dta, replace

  37. stack id nid, into(nid)
  38. drop _stack
  39. duplicates drop nid, force
  40. gen a = 1
  41. tempfile temp_file
  42. save `temp_file'
  43. rename nid id
  44. joinby a using `temp_file'
  45. drop a
  46. merge 1:1 id nid using test
  47. drop _merge
  48. replace neighbor = 0 if id == nid
  49. reshape wide neighbor, i(id) j(nid)
  50. rename neighbor* id*
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ywh19860616 + 2 + 1 + 1 精彩帖子

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

藤椅
prescottwong 发表于 2015-7-16 08:58:18
这么强大!

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

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