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

cbindオブジェクトを totしようとすると、エラーが発生する可能性があります。エラー メッセージは、寸法について不平を言っています。このオブジェクトが 3 次元の配列であるかのように "[" を使用しており、'cbind' は配列では機能しません。それが実際に 3 次元オブジェクトである場合は、インストール パッケージ 'abind' を使用して function を使用します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 には 2 つの次元があり、'tot' オブジェクトには 3 つの次元があり、sum からの戻り値はスカラーになります。

于 2012-06-17T03:54:37.707 に答える