R 从数据框中提取两个人在一个问题上共同工作的实例,加上小时数和问题名称
我的最终目标是创建一个网络图,可能是使用R 从数据框中提取两个人在一个问题上共同工作的实例,加上小时数和问题名称,r,dplyr,igraph,R,Dplyr,Igraph,我的最终目标是创建一个网络图,可能是使用igraph,为100人小组显示每个人在各种事务(项目)上的合作情况。图中两个人之间边缘的厚度将反映该人在该问题上的工作时间,并且图将识别他们都在该问题上工作的名称 到目前为止,我已经使用了dplyr创建了一个宽数据框,看起来像下面的玩具数据集 dput(soQ) structure(list(Matter = c("A", "B", "C", "D", "E", "F"), Person1 = c(5, 0, 0, 0, 2, 4), Per
igraph
,为100人小组显示每个人在各种事务(项目)上的合作情况。图中两个人之间边缘的厚度将反映该人在该问题上的工作时间,并且图将识别他们都在该问题上工作的名称
到目前为止,我已经使用了dplyr
创建了一个宽数据框,看起来像下面的玩具数据集
dput(soQ)
structure(list(Matter = c("A", "B", "C", "D", "E", "F"), Person1 = c(5,
0, 0, 0, 2, 4), Person2 = c(0, 3, 0, 2, 0, 0), Person3 = c(2,
2, 0, 0, 3, 2), Person4 = c(0, 1, 1, 1, 0, 2)), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
有人能告诉我们R如何创建一个数据框,列出两个人在同一问题上工作的实例,并为这些实例包括问题名称和小时数吗?结果可能如下所示:
Person WorkedWith Matter Hours
Person1 Person3 A 5
Person1 Person3 E 2
Person1 Person3 F 4
Person1 Person4 F 4
Person3 Person1 A 2
Person3 Person1 E 3
等
人员1与人员2在任何事项上合作,人员3在3个事项(A、E和F)上合作,人员4在一个事项(F)上合作。Person1和Person3记录了他们一起工作的不同时间
第二个人和第三个人在一件事(B)上合作,第四个人在一件事(B)上合作,以此类推
谢谢你的时间和努力。我想这就是你想要的
df%
枢轴长度(cols=-物质)%>%
过滤器(值>0)%>%
左联合(,,by=“Matter”)%>%
过滤器(name.x!=name.y)%>%
转换(Person=name.x,WorkedWith=name.y,
物质,小时=值.x)%>%
安排(人)
我想这就是你要找的
df%
枢轴长度(cols=-物质)%>%
过滤器(值>0)%>%
左联合(,,by=“Matter”)%>%
过滤器(name.x!=name.y)%>%
转换(Person=name.x,WorkedWith=name.y,
物质,小时=值.x)%>%
安排(人)
非常好。我花了更长的时间与代码斗争,并最终创建的问题比你花了回答它!但你带来了我不知道的技术。我针对实际数据运行了代码,并在transmute()调用中得到一个错误:“错误:列'Name'[我所称的事项]无法修改,因为它是一个分组变量”。当我删除它时,专栏标题仍然是“Name”,所以一切都很好。很高兴它起作用了。我与网络公司合作进行研究,所以我以前也做过类似的事情。如果我能做些改变让答案更好,请告诉我。太好了。我花了更长的时间与代码斗争,并最终创建的问题比你花了回答它!但你带来了我不知道的技术。我针对实际数据运行了代码,并在transmute()调用中得到一个错误:“错误:列'Name'[我所称的事项]无法修改,因为它是一个分组变量”。当我删除它时,专栏标题仍然是“Name”,所以一切都很好。很高兴它起作用了。我与网络公司合作进行研究,所以我以前也做过类似的事情。如果我能做些改变,让答案更好,请告诉我。