我有一组数字,我想把它们展开成一个矩阵.

freq <- c(627,449,813,111)  

我想把它扩展成一个矩阵,就是这样.

    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

这些单元格是(行总数)x(列总数)/(表总数)的乘积.1,1=(627 x 627)/2000中的值=197.2,1=(627x449)/2000=141中的值,依此类推.

有没有一个函数可以创建这个矩阵?我将try 通过一个循环来实现,但我希望有一个函数或矩阵计算技巧可以更有效地实现这一点?抱歉如果我没有很好地表达以上内容,非常感谢您的帮助.谢谢

推荐答案

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

R相关问答推荐

按R中不同长度的组将日期时间列值四舍五入到小时

如何将y轴设置为在ggplot 2中x=0处与x轴相交?

pdf Quarto中的中心美人鱼

如何在热图中绘制一个图形,但在每个单元格中通过饼形图显示?

geom_raster不适用于x比例中超过2,15的值

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

变量计算按R中的行更改

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

如果行和大于值,则过滤

用相同方法得到不同函数的ROC最优截断值

如何使下一个按钮只出现在Rshiny 的一段时间后?""

在组中添加值增加和减少的行

Ggplot2中的重复注记

按多列统计频次

为什么这个表格格罗布不打印?

如何在反曲线图中更改X标签

创建在文本字符串中发现两个不同关键字的实例的数据框

为R中的16组参数生成10000个样本的有效方法是什么?

在同一单元格中创建包含整数和百分比的交叉表

使用LAG和dplyr执行计算,以便按行和按组迭代