R:存储一个变量';函数返回的内容,如果对象被重新分配,则该内容不会更改

R:存储一个变量';函数返回的内容,如果对象被重新分配,则该内容不会更改,r,function,variables,environment-variables,R,Function,Variables,Environment Variables,我需要创建一个函数来返回作为变量存储的数据。但是,该变量将在以后重新分配。如何指定一个函数来返回变量的当前内容(无需为其分配唯一变量),而不是在执行该函数时调用该变量 v[1]21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4 #> [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7 #> [

我需要创建一个函数来返回作为变量存储的数据。但是,该变量将在以后重新分配。如何指定一个函数来返回变量的当前内容(无需为其分配唯一变量),而不是在执行该函数时调用该变量

v[1]21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
#> [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
#> [31] 15.0 21.4

f您可以创建一个函数,返回存储当前值的函数:

v[31]15.0 21.4
v[1]21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
#> [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
#> [31] 15.0 21.4

这是一种通用解决方案


c_name我必须使用一个包中的函数,该包使用函数作为输入,而不是值向量。所以我必须创建一个返回值的函数。由于代码是如何生成的(在循环中),存储值的变量将在每次迭代中重新分配,因此需要存储变量的内容而不是调用。当然,我可以生成一个具有唯一标识符的新列表,并在每个循环中存储内容,但这似乎不是最有效的解决方案(不需要创建/存储新对象)。非常感谢!不幸的是,我有一个额外的约束,它似乎不适用于该解决方案(请参见后期编辑)。。。任何解决方法?请尝试:
list$f()
,这会起作用,但不幸的是我无法调用它(对象的名称必须匹配特定的模式,这使得它的调用能力不是一个选项-它必须是一个常规名称,
list[[“somename”]]
必须自己返回值):'(
list$f
是您的工作流所要求的函数。我不明白为什么需要函数作为输入的包不接受
list$f
,它也是您编辑中显示的函数。
h如图所示“包不调用函数,而只是“正常地”[无()]”检索它们,尝试在控制台中不使用
()
调用
mean
:您将获得指向函数的指针,如
列表$f