我有一个关于 R 的问题。
我有一些按顺序编号的矩阵(所有相同的维度),我想搜索它们并生成一个最终矩阵,其中包含(对于每个矩阵元素)超过定义阈值的次数。
例如,我可以选择 0.7 的阈值,我可以有以下三个矩阵。
matrix1 [,1] [,2] [,3] [1,] 0.38 0.72 0.15 [2,] 0.58 0.37 0.09 [3,] 0.27 0.55 0.22 matrix2 [,1] [,2] [,3] [1,] 0.19 0.78 0.72 [2,] 0.98 0.65 0.46 [3,] 0.72 0.57 0.76 matrix3 [,1] [,2] [,3] [1,] 0.39 0.68 0.31 [2,] 0.40 0.05 0.92 [3,] 1.00 0.43 0.21
我想要的输出将是
[,1] [,2] [,3] [1,] 0 2 1 [2,] 1 0 1 [3,] 2 0 1
如果我这样做:
test <- matrix1 >= 0.7
test[test==TRUE] = 1
然后我得到一个矩阵,其中 1 表示超过阈值,0 表示未超过阈值。所以这是我想做的关键一步:
test= [,1] [,2] [,3] [1,] 0 1 0 [2,] 0 0 0 [3,] 0 0 0
我的想法是做一个循环,所以我对每个矩阵执行这个计算并添加“测试”的每个结果,这样我就得到了我想要的最终矩阵。但我不确定两件事:如何在变量名“矩阵”中使用计数器,其次是否有比使用循环更有效的方法。
所以我在想这样的事情:
output = matrix(0,3,3)
for i in 1:3 {
test <- matrixi >= 0.7
test[test==TRUE] = 1
output = output + test }
当然,这不起作用,因为 matrixi 不会转换为 matrix1、matrix2 等。
我真的很感谢你的帮助!!!