将数字列表扩展为矩阵(包含 n 个值的列表,乘以 xn 矩阵)

H.C*_*ung 4 r matrix

我有一组数字,我想将其扩展为矩阵。列表中有 4 个值,我想将它们扩展为 4x4 矩阵。这是一些示例数据

freq <- c(627,449,813,111)  
Run Code Online (Sandbox Code Playgroud)

我想将其展开为一个矩阵,就像这样。抱歉,我刚刚复制并粘贴了数据,因此它不是 R 输出,但希望它有助于理解这个想法。

    1   2   3   4   Total
1   197 141 255 35  627
2   141 101 183 25  449
3   255 183 330 45  813
4   35  25  45  6   111
    627 449 813 111 2000
Run Code Online (Sandbox Code Playgroud)

单元格是(行总计)x(列总计)/(表总计)的乘积。1,1 中的值 = (627 x 627)/2000 = 197。2,1 中的值 = (627 x 449)/2000 = 141,依此类推。

是否有一个函数可以创建这个矩阵?我将尝试通过循环来完成此操作,但希望有一个函数或矩阵计算技巧可以更有效地完成此操作?如果我没有很好地表达上述内容,我们深表歉意,非常感谢任何帮助。谢谢

小智 6

freq <- c(627,449,813,111) 
round(outer(freq, freq)/sum(freq))
#>      [,1] [,2] [,3] [,4]
#> [1,]  197  141  255   35
#> [2,]  141  101  183   25
#> [3,]  255  183  330   45
#> [4,]   35   25   45    6
Run Code Online (Sandbox Code Playgroud)