我正在尝试在R中进行分析层次过程。
我可以使用的因子矩阵是: -
{Matrix <- diag(3)
Matrix[1,2] <- 0.4
Matrix[1,3] <- 0.2
Matrix[2,3] <- 0.5}
[,1] [,2] [,3]
[1,] 1 0.4 0.2
[2,] 0 1.0 0.5
[3,] 0 0.0 1.0
为了分析数据,我想在上三角形的基础上填充矩阵的下三角形。位置[i,j]的值将是[j,i]处的值的倒数。
for (i in 1:nrow(Matrix))
{
for (j in 1:ncol(Matrix))
{
if(i>j)
{
Matrix[i,j]=1/Matrix[j,i]
}
}
}
结果符合我的期望: -
[,1] [,2] [,3]
[1,] 1.0 0.4 0.2
[2,] 2.5 1.0 0.5
[3,] 5.0 2.0 1.0
我必须为分析中的每个因素多次运行类似的数据集。因此,我没有多次使用代码,而是决定创建一个函数来处理这个问题。
Fill_Matrix <- function(Fact_Matrix){
for (i in 1:nrow(Fact_Matrix))
{
for (j in 1:ncol(Fact_Matrix))
{
if(i>j)
{
Fact_Matrix[i,j]=1/Fact_Matrix[j,i]
}
}
return (Fact_Matrix)
}}
Fill_Matrix(Matrix)
当我调用此函数时,我无法获得结果。它可能与将数组作为函数中的参数传递有关。