【问题标题】:How do I output a matrix from a custom function with a name based on the name of the input matrix如何从自定义函数输出矩阵,其名称基于输入矩阵的名称
【发布时间】:2019-02-13 12:38:38
【问题描述】:

我有一个重复的 R 脚本区域,用于操作我想使用自定义函数简化的矩阵。我可以很好地生成自定义函数,但我希望函数的输出是全局环境中的矩阵,其名称基于输入矩阵的名称。

所以代码是这样的:

CustomFunction <- function (input) {
input_mod <- input *2
}

(显然我在这里简化了函数,因为函数中的实际步骤与问题无关。)

但我希望输出是全局环境中的矩阵,其名称基于输入名称。那么如果我在三个不同的输入矩阵(input1、input2 和 input3)上运行自定义函数 3 次,自定义函数的输出应该是全局环境中名为 input1_mod、input2_mod 和 input3_mod 的三个矩阵。

我目前在 R 中的能力只使我能够生成始终具有相同名称的输出,并且我希望能够多次运行该函数并存储每个输出矩阵以供后续进一步操作。

感谢您的关注,希望您能提供帮助!

【问题讨论】:

  • 请注意,这通常不是一件好事。最好将事物存储在列表中,您可以将它们作为input[[1]]input[[2]] 获取,然后您可以为任何i 值执行i=4; input[[i]]。然后你的输出是一个名为input_mod 的列表,你可以遍历input_mod[[i]]。通过构造名称和分配名称来创建事物是笨拙的,应该避免。
  • 嗨 Spacedman,这看起来可能是我的答案。我要试一试。
  • 嗨 Spacedman,这是我正在采取的方法。列表使我的代码更简单(嗯,更短),尽管需要一些 unlist 命令来运行分析。非常感谢!

标签: r


【解决方案1】:

看看assign函数,例如

assign("Global.res", x^2, envir = .GlobalEnv)

【讨论】:

  • 太好了,谢谢。现在,如果生成列表对我来说太费时,这将是我的备用计划。
猜你喜欢
  • 1970-01-01
  • 2022-10-21
  • 2014-04-05
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 2019-04-17
相关资源
最近更新 更多