我有一个返回平均时间序列的函数(使用包hydroTSM)。 但是,我不仅要输出平均值,还要创建具有指定名称的变量(" d2m" +参数名称),以便稍后我可以访问这些值。这就是我到目前为止所做的。
d2m = function(var) {
d2m = daily2monthly(var, FUN = mean)
assign(paste('d2m', var, sep = ''), d2m)
}
我还无法创建输出变量。对于函数参数var = 123,我应该得到一个名为d2m123的变量,其中时间序列为值。感谢。
答案 0 :(得分:0)
很少需要分配这样的变量 - 我建议您可能希望使用其他类型的数据结构来存储函数调用的结果,例如列表(参见SO问题Why is using assign bad?为了更全面的讨论)。
要回答您的要求,您正确分配变量,但它只在函数范围内。如果您阅读了有关assign的帮助(在控制台中键入? assign
),您将看到 envir 参数的详细信息。如果要在任何位置查看值,请指定.GlobalEnv
:
d2m = ...
assign(paste('d2m', var, sep = ''), d2m, envir = .GlobalEnv)
但如上所述,我建议您更多地考虑使用合适的数据结构来存储函数调用结果。
答案 1 :(得分:0)
d2m <- function(var) {
d2m <- daily2monthly(var, FUN = mean)
assign(paste("d2m", var, sep = ""), d2m, envir = globalenv())
}
答案 2 :(得分:0)
我使用xts对象作为函数参数为我工作:
d2m = function(var) {
d2m = daily2monthly(var, FUN = mean)
varName<-deparse(substitute(var))
assign(paste("d2m", varName, sep = ""), d2m, envir = globalenv())
}