我是一名使用R进行社交网络分析的基本程序员,并且有一些我不确定如何解决的信息 .
是)我有的:
- 存储为csv文件的邻接矩阵,其中包含以下信息:a)第1行中的住户和第1列中的住户通过共享资源相互交互 . b)相互作用是由亲属数字代表的联系 . 亲属关系越近(或越强),数字越小 . 例如,1是亲子亲属关系,100是亲属关系 . 与自己无亲属关系 . c)文件片段:
[,1] [,2] [,3] [,4] [,5]
[1,] NA 100 2 1 100
[2,] 4 NA 100 100 3
[3,] 100 3 NA 2 4
[4,] 100 1 5 NA 100
[5,] 1 100 4 100 NA
我需要的:
-
我需要将此邻接矩阵转换为具有三列(“HH1”,“HH2”,“HHKinRank”)的边列表,以便完成额外的亲属关系计算 .
-
必须将此边缘列表另存为新的csv文件以供进一步分析 .
-
我对列表的最大问题是,它只需要列出数值 . 如果没有平局(NA),边缘列表会显示这个吗?
我做了什么:
我尝试将csv文件分配给新变量HHKinRank.el < - read.csv(“HouseholdKinRank.csv”) .
当我这样做时,最令人沮丧的组件是确定我可能必须使用的库 . 有许多功能命令,例如熔化,因此故障排除是一个问题,因为我也可能错误地分配值 .
我可以从边缘列表转到矩阵,但相反的是难以运行命令 .
感谢您对此提供任何帮助 .
2 回答
您可以使用R的
network
包执行此操作,也可以在igraph
中执行此操作 .原始数据:
1)将行索引,列索引和邻接矩阵的值组合成3个矩阵的列表:
2)展平矩阵:
3)将向量绑定到3列矩阵:
4)删除第3列为NA的行:
5)将它全部包装成一个函数:
6)拿它旋转: