在函数内使用“粘贴”名称

时间:2012-05-27 04:14:36

标签: r

我有一个函数来计算一些东西,然后将它分配给矩阵。此矩阵从粘贴语句(基于某些其他当前值)接收其名称。然后我想将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。如何让R理解我想设置矩阵rhoMat_15的dimnames而不是matName?

谢谢,彼得

1 个答案:

答案 0 :(得分:3)

dimnames(get(matName)) <- labs