首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建并返回包含参数名称的变量

创建并返回包含参数名称的变量
EN

Stack Overflow用户
提问于 2018-01-22 12:23:32
回答 3查看 658关注 0票数 1

我有一个函数返回平均时间序列(使用包hydroTSM)。但是,我不仅要输出平均值,还要创建一个具有指定名称的变量(“d2m”+参数名),以便以后可以访问这些值。这就是我到目前为止得出的结论。

代码语言:javascript
复制
d2m = function(var) {
    d2m = daily2monthly(var, FUN = mean)
    assign(paste('d2m', var, sep = ''), d2m)
    }

我还无法创建输出变量。对于函数参数var=123,我应该得到一个名为d2m123的变量,其值为timeseries。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-22 13:09:02

代码语言:javascript
复制
d2m <- function(var) {
  d2m <- daily2monthly(var, FUN = mean)
  assign(paste("d2m", var, sep = ""), d2m, envir = globalenv())
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-22 13:07:17

很少有必要分配这样的变量--我建议您可能希望使用其他类型的数据结构来存储函数调用的结果,例如列表(更详细的讨论请参见因此问题Why is using assign bad? )。

要回答您所要求的内容,您需要正确地赋值一个变量,但它只是函数中的作用域。如果您阅读“赋值帮助”(在控制台中键入? assign ),您将看到环境参数的详细信息。如果您想从调用它的任何地方看到值,则需要指定.GlobalEnv

代码语言:javascript
复制
d2m = ...
  assign(paste('d2m', var, sep = ''), d2m, envir = .GlobalEnv)

但是,如前所述,我建议您更多地考虑适当的数据结构,以存储函数调用结果。

票数 0
EN

Stack Overflow用户

发布于 2018-01-22 13:16:57

我使用xts对象作为函数参数来工作:

代码语言:javascript
复制
d2m = function(var) {
  d2m = daily2monthly(var, FUN = mean)
  varName<-deparse(substitute(var))
  assign(paste("d2m", varName, sep = ""), d2m, envir = globalenv())
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48381547

复制
相关文章

相似问题

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