【发布时间】:2013-10-02 18:07:22
【问题描述】:
我想知道是否有办法在 R 中传递变量的“名称”。 我想要的是使以下功能更通用:
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a
我不想要的是一个只有在我要更改的变量称为“a”时才有效的函数,所以我想知道我是否可以做一些事情,比如将变量名作为参数传递,然后调用赋值具有该名称的功能。像这样的:
a <- "old"
test <- function (varName) {
assign(varName, "new", envir = .GlobalEnv)
}
test(a) #!!!!! Here !!!!!
a
感谢您的帮助。
【问题讨论】:
-
你的意思是 -
test(varName = 'a')? -
您想将
a的值从old重新分配给new,或者您想将new的值分配给一个新变量old(如果是后者,你的功能是这样做的,前者是<-的用途......)?此外,如果您发现自己使用assign,您几乎总是做错了。 -
实际上我真正想做的是将环境中的变量传递给函数,而不将环境分配给函数本身。像 myFunction(e1$myVar) 这样的函数 myfunction(theVar) 对“theVar”进行赋值并修改 myVar。但我无法让它工作。
-
我还是完全不明白你想要什么。请编辑您的问题以包括所需的输入和输出以及您要解决的更大问题的描述。我觉得有比处理
assign和传递环境更好的选择...... -
@Justin 我认为他正在寻找对
assign的修改,该修改需要一个变量,而不是一个字符。换句话说,我认为他正在寻找一个带有环境参数的<-的变体。
标签: r variables pass-by-reference