我想分析通过共享公司董事相关的公司数据集 . 问题是我首先创建一个二分网络,然后使用它的投影,我不知道何时附加顶点属性 .

我从一个包含以下列的大型数据框开始:

CompanyID,Director ID,CompanyName,Revenue,Size,Ticker,DirectorName,Director Position,ChairmanDummy,NumberofBoardSeats

我把df变成了一个图:net <-graph.data.frame(df,directed = FALSE)

这给了我一个图表(“net”):CompanyID,Director ID关系

我不能在这个阶段添加顶点属性,因为它是一个二分网络,我只有一个公司顶点的属性表(列号CompanyID,Director ID,CompanyName,Revenue,Size,Ticker) . 如果我尝试包含“vertices = nodes” - 节点是包含公司顶点的文件,我得到错误:“边缘列表中的某些顶点名称未列在顶点数据框中”可能是因为该表不包含导向器顶点上的数据 .

所以我继续采取我感兴趣的二分投影:

V(net)$ type < - V(net)$ name%in%df $ source table(net $ type)is_bipartite(net)

net.list <-bipartite_projection(net,multiplicity = TRUE)firm <-net.list [[1]]

在这里,公司是公司 - 公司关系的预测,两家公司共享同一公司董事 .

但是,在这一点上,一旦我创建了图形,如何在每个顶点(每个公司)上添加关于属性的数据?

如上所述,我有“节点”文件,其中包含与每家公司相关的信息,但我不知道如何将其附加到公司图表 .

我尝试将图形导出为data.frame :( Firms.df < - as_data_frame(firm)但是得到错误“不能强制类”“igraph”“到data.frame”

作为一个相关的问题,我不确定如何处理导演顶点的信息,这些信息是我基本上放弃的二分投影的一部分 . 其中一些是董事属性(姓名,董事职位数),但其他属于公司董事对(职位) . 这些对我的分析来说不太有用,但我的感觉是我需要对初始数据框进行分组以选择我感兴趣的功能(例如,只有属于10个或更多板的导向器),然后从结果中构建网络 . 数据子集 - 这是接近它们的最佳方式吗?

任何帮助将非常感激 .