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