R要替换的项目数不是替换长度的倍数

时间:2013-10-29 13:39:01

标签: r

我写了一个函数,必须创建一个rxk矩阵,并用代码中给出的formule填充它。

mCreate<-function(r,k)
{
 result<-array(0,dim=c(r,k))
  for(R in 0:(r-1)) 
  {
    for(K in 0:(k-1))
     {
      result[R][K] = 5*R^K-2*K^R
      }
   }
   return(result)
}

当我尝试测试时,我总是得到“R要替换的项目数不是替换长度的倍数”。我不明白为什么,我在google上搜索过,而且我总是得到它的信息,因为我已经出去了。

1 个答案:

答案 0 :(得分:2)

我会使用outer代替......

mCreate <- function( r , c ){
  r <- seq_len(r)
  c <- seq_len(c)
  m <- outer( r , c , FUN = function(x,y) 5*x^y-2*y^x )
  return( m )
}

mCreate( 4 , 4 )
#     [,1] [,2] [,3] [,4]
#[1,]    3    1   -1   -3
#[2,]    8   12   22   48
#[3,]   13   29   81  277
#[4,]   18   48  158  768

#  Sanity check:
mCreate( 1 , 1 )
#     [,1]
#[1,]    3

#  Safety check:
mCreate( 0 ,0 )
<0 x 0 matrix>