【问题标题】:using a "pasted" name inside a function在函数中使用“粘贴”名称
【发布时间】:2012-05-27 04:14:36
【问题描述】:

我有一个计算一些东西然后将其分配给矩阵的函数。该矩阵的名称来自粘贴语句(基于其他一些当前值)。然后我想将 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 的暗名,而不是 matName?

谢谢,彼得

【问题讨论】:

    标签: r


    【解决方案1】:
    dimnames(get(matName)) <- labs
    

    【讨论】:

    • 谢谢,这是有道理的。奇怪的是,我在 dimnames(get(matName))
    • 你的括号搞砸了。你在尝试get(matName) &lt;- labs吗?那会尝试调用不存在的get&lt;-
    • 不,我正在尝试设置 matName
    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2019-04-10
    • 2020-09-12
    相关资源
    最近更新 更多