【发布时间】:2014-09-11 10:26:34
【问题描述】:
我需要在函数中分配一个变量,其名称是函数的参数,并且我需要稍后在函数外部访问它。我认为<<- 在另一种情况下会这样做,但由于变量的名称是动态的,我想我需要assign()。
我现在拥有的东西
assignVar = function(varname) {
assign(varname,"blabla")
}
assignVar("foo")
foo
返回通常的Error: object 'foo' not found。
assign 函数或任何其他秘密武器是否有一些选项可供我使用?我已经查看了文档,但我仍然对环境感到非常困惑......(R初学者)。
【问题讨论】:
-
不要这样做。只需将所需的所有变量作为函数的结果返回列表中,您就可以省去很多麻烦。
-
试试
assign(varname,"blabla", .GlobalEnv),虽然不推荐 -
@Andrie,我认为你是对的,但我不知道该怎么做。我需要一个函数来检查 RDS 文件是否存在并将其加载到变量中(作为参数传递)。如果文件不存在,或者需要重新创建,该函数会执行一个 R 脚本(其路径作为参数传递)来生成文件,并将其保存在内存中。在那种情况下,我真的不能拥有
df <- checkLoad(dataset.path,scriptToGenerate.path),因为如果函数运行生成数据的脚本(并在该脚本中将其分配给df),那么上面的命令将覆盖df。 -
你在问一个新问题——我建议你确实问一个新问题。我想我们已经回答了你原来的问题。但是为什么不把你的结果分配给
df_new呢? -
我建议您提出一个新问题,在其中概述您正在做的事情并寻求更好的方法。我不清楚你目前在做什么,但我可以向你保证,我从来没有使用过
assign()。
标签: r global-variables variable-assignment