将数据框转换为R中的邻接矩阵格式

Convert data frame into adjacency matrix format in R

我的数据是这样的:

Sample_A    Sample_B  Value

Rabbit       Mouse     1.2
Mouse        Tiger     7.89
Tiger        Lion      -0.9
Mouse        Rabbit     1.2
Lion         Rabbit     98.13

我想把它变成这样的格式:

         Lion      Tiger      Mouse    Rabbit
Rabbit   98.13       .        .
Mouse
Lion
Tiger

所以,我希望我的第二列 (sample2) 的每一行都单独成为一列,然后相应地分配赋值。样本名称的顺序无关紧要。我的真实数据有 2000 行和相同的 3 列。有没有办法在 R 中准备我想要的矩阵?任何功能使用?稍后我打算绘制它,这就是我需要它的原因。谢谢

这听起来像是使用枢轴的教科书案例。 There are many ways to do this in R。这是基本的 R 解决方案:

#Your example data:
original <- data.frame(Sample_A = c("Rabit", "Mouse", "Tiger", "Mouse", "Lion"),
                       Sample_B = c("Mouse", "Tiger", "Lion", "Rabit", "Rabit"),
                       Value = c(1.2, 7.89, -0.9, 1.2, 98.13))
#Pivot:
with(original, tapply(Value, list(Sample_A, Sample_B), FUN = identity))

输出:

      Lion Mouse Rabit Tiger
Lion    NA    NA 98.13    NA
Mouse   NA    NA  1.20  7.89
Rabit   NA   1.2    NA    NA
Tiger -0.9    NA    NA    NA