gpt4 book ai didi

r - 在 R 中有效地打包和解包函数参数

转载 作者:行者123 更新时间:2023-12-02 04:41:16 27 4
gpt4 key购买 nike

<分区>

我有一些 R 代码,我的函数中开始有太多参数,就像这样

f<-function(a,b,c,d,e,f,g,...){
#do stuff with a,b,c,d,e,f,g
return(list(q=q,r=r,s=s,...))
}

我正在考虑将参数折叠成相关参数列表,然后从函数内部的列表中提取参数。这很烦人,因为我必须使用大量样板代码

list_of_params<-list(a=a,b=b,...)
f<-function(list_of_params){
a<-list_of_params[["a"]]
b<-list_of_params[["b"]]
c<-list_of_params[["c"]]
...
#do stuff with a,b,c,...
return(list(q=q,r=r,s=s,...))
}

我正在考虑使用类似 list2env 的东西来自动将列表中的变量提取到函数的环境中。有没有人对这是否是一种合理的方法有意见?我在某处读到使用 assign 是个坏主意,这看起来很相似。我建议的函数如下所示:

f<-function(list_of_params){
list2env(list_of_params, envir=as.environment(-1)) #-1 means current environment
#do stuff with a,b,c...
return(list(q=q,r=r,s=s,...))
}

我以前从未使用过assign()list2env()。我担心它们可能有我应该提防的危险陷阱,就像 attach() 一样。这里使用list2env()合适吗?如果不是,该函数的正确用法是什么?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com