我正在努力将矩阵的行标准化为等于1。我要标准化的矩阵实际上是6012X6012稀疏矩阵,但是我希望为较小的矩阵编写代码
T = matrix(c(1, 2, 3, 2, 1, 4, 3, 4, 5), nrow = 3, ncol = 3)
我可以进行for循环,但是使用大型矩阵将花费很长时间,因此我正在寻找其他方法。我尝试使用apply,但是由于某种原因,它使列而不是行标准化,无论我提供的是“ 1”还是“ 2”:
test = apply(T, 1, function(x) x/sum(x))
这是上面功能的输出:
[,1] [,2] [,3]
[1,] 0.1666666666666667 0.2857142857142857 0.2500000000000000
[2,] 0.3333333333333333 0.1428571428571428 0.3333333333333333
[3,] 0.5000000000000000 0.5714285714285714 0.4166666666666667
预先感谢您的帮助。