1

我在 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, ] <- c(minimum:maximum) 中的错误:下标数量不正确我该如何解决这个问题?当最小值和最大值是实际数字时,不会出现错误。

提前感谢您的建议。

4

1 回答 1

0

当您尝试cbindtot 对象时,可能会发生该错误。错误消息抱怨尺寸。您正在使用“[”,就好像该对象是一个具有三个维度的数组,而“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 的返回将是一个标量。

于 2012-06-17T03:54:37.707 回答