我正在尝试绘制有关文字中社交字符的情节。
您知道,它显示了“通过使用矩阵”字符出现的频率。
但是我想我陷入了在特定矩阵点(?)(行,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)个字符,并且该字符出现在哪一行?
所以我的计划是,如果一个字符出现在第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矩阵没有变化。