3

いくつかのことを計算し、それを行列に割り当てる関数があります。このマトリックスは、(他のいくつかの現在の値に基づいて) 貼り付けステートメントからその名前を受け取ります。次に、dimnames をマトリックスに割り当てたいのですが、貼り付けた名前を理解させる方法がわかりません。

何が起こっているかは次のとおりです。

function <- someComputations(labs) {
  ### bunch of computations, leading to X, Y, and Z:
  matName <- paste("rhoMat_", X, sep = "") # this yields rhoMat_15 if X equals 15
  assign(matName, Y %*% Z)
  assign(dimnames(matName), labs) # labs is a list of row labels and column labels
  return(matName)
}

これは、最初の assign ステートメントを含めてうまく機能しますが、その後はうまくいきません。eval(parse(text = matNum))、as.name(matNum)、substitute(matNum) など、あらゆる種類のアプローチを試しましたが、役に立ちませんでした。マトリックスの実際の名前がわからないため (matNum が指定されていないため)、名前を関数にハードコードすることはできません。そのため、その文字名 matName に固執しています。matName ではなく、行列 rhoMat_15 の dimname を設定したいことを R に理解させるにはどうすればよいですか?

ありがとう、ピーター

4

1 に答える 1

3
dimnames(get(matName)) <- labs
于 2012-05-27T04:33:27.070 に答える