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