在函数中传递多维数组作为参数

时间:2017-02-15 12:40:04

标签: arrays r function matrix dataframe

我正在尝试在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)

当我调用此函数时,我无法获得结果。它可能与将数组作为函数中的参数传递有关。

0 个答案:

没有答案