我想在矩阵中给出分数以可视化R中的角色社交网络图

时间:2018-07-08 05:20:18

标签: r

我正在尝试绘制有关文字中社交字符的情节。

您知道,它显示了“通过使用矩阵”字符出现的频率。

但是我想我陷入了在特定矩阵点(?)(行,col)的问题。

矩阵由每个字符列表行和列组成。一样。

如果提供两个字符(如果梅西,罗纳尔多)同时出现在同一行中(或在+/- 2以内)的条件是正确的,那么我要给位置1分(+1)(矩阵[messi,ronaldo]点)。

我发布我的代码和其他信息:

1。 我的框架 myframe是一个空矩阵,所有默认数据均为0,row和col为字符。

crt_k是有关所有字符的列表

myframe<-matrix(data=0,nrow=length(crt_k), ncol=length(crt_k))

rownames(myframe)<-crt_k

colnames(myframe)<-crt_k

2。 f_data f_data是一个data.frame,具有两个col字符(chr)和line(num)个字符,并且该字符出现在哪一行?

enter image description here

所以我的计划是,如果一个字符出现在第13行,而第二个人出现在第11(13-2)行至第15(13 + 2)行,则我得出结论,两者相互关联,因此给一个点指定矩阵位置...

下面是我的草率代码:

for (i in 1:length(f_data[,2])){
  for (j in 1:length(f_data[,2])){
    if (f_data[,2][[i]]==f_data[,2][[j]]|(f_data[,2][[i]]+1)==f_data[,2][[j]]|
        (f_data[,2][[i]]+2)==f_data[,2][[j]]|(f_data[,2][[i]]-1)==f_data[,2][[j]]|
        (f_data[,2][[i]]-2)==f_data[,2][[j]]&f_data[,2][[i]]!="")
        for (k in 1:length(myframe[,1])){
          for (q in 1:length(myframe[1,])){
            if ((f_data[,1][i]) <- colnames(myframe)[k]&(f_data[,1][j]) == rownames(myframe)[q])
              myframe[k,q]==myframe[k,q]+1
      }
    }
  } 
}

但myframe矩阵没有变化。

0 个答案:

没有答案