将向量分配给数组时发生R错误

时间:2012-06-16 20:03:13

标签: arrays r vector

我在R中编写了一个函数,如下所示:

  matching_score=function(nitems, tot.score) {

  nInterval <- 4*nitems+1
  tot <- array(0, dim=c(nInterval,2,nGroup.all) )
  minimum <- nitems
  maximum <- nitems*5
  tot[,1,] <- c(minimum: maximum)    
    for (nGcut in 1:nGroup.all)
    {

... 但是R给出了一条错误消息: tot [,1,]&lt; -c(最小值:最大值)出错:   下标数量不正确 我该如何解决这个问题?当最小值和最大值是实际数字时,未显示错误。

提前感谢您的建议。

1 个答案:

答案 0 :(得分:0)

当您尝试cbind tot对象时,可能会发生错误。错误消息抱怨维度。您使用“[”,好像此对象是具有三维的数组,'cbind'不适用于数组。如果它真的是一个三维对象,则安装包'abind'并使用函数abind

require(abind)
arr <- array(1:(2*3*4), c(4,3,2) )
abind(arr, arr[,,1], along=3)

这一行的尺寸:

tempo[nRw,] <- cbind(tot[nRw,1,1], sum(tot[nRw,2,]))

......似乎都错了。 LHS有两个维度,'tot'对象有三个,sum的回报将是一个标量。