【发布时间】:2020-09-15 17:47:57
【问题描述】:
你好 Stack Overflow R 社区。我正在尝试在 Mac 的 RStudio 版本 1.3.1073 中编写一个函数,它转换矩阵的元素,以便在相同维度的矩阵中用它们的累积频率值替换原始元素。
假设我有一个矩阵 M:
matrix(c(50, 50, 54, 61, 50,
61, 58, 59, 60, 65,
54, 55, 58, 51, 60,
58, 59, 66, 62, 51), nrow = 4, ncol = 5, byrow = TRUE) -> M
return(M)
[,1] [,2] [,3] [,4] [,5]
[1,] 50 50 54 61 50
[2,] 61 58 59 60 65
[3,] 54 55 58 51 60
[4,] 58 59 66 62 51
如果我使用table(M),那么我会得到这个输出:
table(M)
50 51 54 55 58 59 60 61 62 65 66
3 2 2 1 3 2 2 2 1 1 1
此表突出显示 M 中每个元素的频率。每个元素的累积值将是:
50 51 54 55 58 59 60 61 62 65 66
3 5 7 8 11 13 15 17 18 19 20
最终,我希望获得这个转换后的矩阵 TM:
return(TM)
[,1] [,2] [,3] [,4] [,5]
[1,] 3 3 7 17 3
[2,] 17 11 13 15 19
[3,] 7 8 11 5 15
[4,] 11 13 20 18 5
输入矩阵 M 中的每个原始元素都被其计算出的累积值替换为新矩阵 TM 在同一单元格中的输出。
我希望避免使用包,以防我需要在无法访问 Internet 的学校计算机上使用此功能来加载 R 包。我的方法应该是什么?
感谢您的考虑,非常感谢您的帮助。
【问题讨论】:
-
感谢 @akrun 发现输出中的错误,我更新了我的问题以反映这些变化,以及由此更正产生的后续值。