首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数内部的attach()

函数内部的attach()
EN

Stack Overflow用户
提问于 2011-04-27 07:49:41
回答 3查看 3.8K关注 0票数 21

我想给一个函数一个params参数,然后附加它,这样我就可以在每次引用列表元素a时使用a而不是params$a。

代码语言:javascript
复制
run.simulation<-function(model,params){
attach(params)
#
# Use elements of params as parameters in a simulation
detach(params)
}

这有什么问题吗?如果我已经定义了一个名为c的全局变量,并且还定义了列表"params“中的一个名为c的元素,那么它的值会在attach命令之后使用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-27 15:29:08

Noah已经指出,使用attach是一个坏主意,即使你在一些例子和书籍中看到了它。有一条路可以绕过去。您可以使用名为with的“本地附加”。在Noah的虚拟示例中,如下所示

代码语言:javascript
复制
with(params, print(a))

这将产生相同的结果,但更整洁。

票数 25
EN

Stack Overflow用户

发布于 2012-07-16 21:41:28

另一种可能性是:

代码语言:javascript
复制
run.simulation <- function(model, params){
    # Assume params is a list of parameters from 
    # "params <- list(name1=value1, name2=value2, etc.)"
    for (v in 1:length(params)) assign(names(params)[v], params[[v]])
    # Use elements of params as parameters in a simulation
}
票数 11
EN

Stack Overflow用户

发布于 2019-02-07 01:40:37

Jean-Luc的回答极大地帮助了我,因为我使用的是data.frame Dat,而不是操作中指定的列表:

for (v in 1:ncol(Dat)) assign(names(Dat)[v], Dat[,v])

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5797797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档