1
我有以下数据帧称为DF,它是由三个向量组成的数据帧:“块”“名称”和“频率”。我需要将它变成NameXName邻接矩阵,其中名称在它们驻留在相同块中时被认为是相邻的。例如,在第一行中,Gretel和Friedrich相邻,因为它们都在Chunk2中。对于Gretel/Friedrich的例子,频率(Gretel)+频率(弗里德里希)-1 = 5,并且关系的权重应该基于“频率”,即它们共同存在于相同块中的次数。将数据帧中的分类数据转换为加权邻接矩阵
Chunk Name Frequency
1 2 Gretel 2
2 2 Pollock 1
3 2 Adorno 1
4 2 Friedrich 4
5 3 Max 1
6 3 Horkheimer 1
7 3 Adorno 1
8 4 Friedrich 5
9 4 Pollock 1
10 4 March 1
11 5 Comte 3
12 7 Jaspers 1
13 7 Huxley 2
14 8 Nietzsche 1
15 8 Sade 2
16 8 Felix 1
17 8 Weil 1
18 8 Western 1
19 8 Lowenthal 1
20 8 Kant 1
21 8 Hitler 1
我开始分裂根据DF $块的数据帧在这个破解,
> DF.split<-split(DF, DF$Chunk)
$`2`
Chunk Name Frequency
1 2 Gretel 2
2 2 Pollock 1
3 2 Adorno 1
4 2 Friedrich 4
$`3`
Chunk Name Frequency
5 3 Max 1
6 3 Horkheimer 1
7 3 Adorno 1
$`4`
Chunk Name Frequency
8 4 Friedrich 5
9 4 Pollock 1
10 4 March 1
而且我认为他走近,但它返回我无法转回到列表项可行的数据框架。
我也试图把这个变成一个ChunkXName邻接矩阵开始:
> chunkbyname<-tapply(DF$Frequency , list(DF$Name,DF$Chunk) , as.character)
与它的转置,以获得NAmeXName矩阵相乘chunkbyname的希望,但似乎这是矩阵太稀疏或复杂(%*%b中的错误:需要数值/复数矩阵/向量参数)。
任何帮助获取此数据帧到邻接矩阵非常赞赏。
是的。非常感谢! – Mon
很高兴它以你想要的方式工作! – Henrik