我在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(最小值:最大值)出错: 下标数量不正确 我该如何解决这个问题?当最小值和最大值是实际数字时,未显示错误。
提前感谢您的建议。
答案 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的回报将是一个标量。