在for循环中更改函数的输入变量
Changing input variable of function in for loop
我有一个 for 循环,在每个循环中它执行一个函数。首先,我从目录中加载 .rda
文件,然后将加载的文件(数据帧)分别分配给 spread
和 ind
。我怎样才能做到这一点?请注意,加载后的变量名称在每个循环中都是不同的,即加载#1 时显示为 NS.ticker_list[j,2]
,#2 显示为 Forward.rate.ticker_list[j,2]
.
for(j in 1:nrow(ticker_list)){
load(file = gsub(" ","",paste(ticker_list[j,2],"_NS.rda"))) #1
load(file = gsub(" ","",paste(ticker_list[j,2],"_Forward.rda"))) #2
p <- arima.auto.fun(spread, ind, maturity_list, lag = 1)
}
您可以将每个文件加载到新环境中,将环境转换为列表对象,然后将列表中的第一个(也是唯一一个)对象分配给 spread
和 ind
变量.您没有提供可重现的示例,因此以下是一个粗略的猜测。我还删除了 gsub
似乎不必要的使用,并将其替换为更简单的 paste0
.
for(j in 1:nrow(ticker_list)){
NS_env <- new.env()
Forward_env <- new.env()
load(file = paste0(ticker_list[j,2],"_NS.rda"), envir = NS_env) #1
load(file = paste0(ticker_list[j,2],"_Forward.rda"), envir = Forward_env) #2
NS_list <- as.list(NS_env)
Forward_list <- as.list(Forward_env)
spread <- NS_list[[1]]
ind <- Forward_list[[1]]
p <- arima.auto.fun(spread, ind, maturity_list, lag = 1)
}
我有一个 for 循环,在每个循环中它执行一个函数。首先,我从目录中加载 .rda
文件,然后将加载的文件(数据帧)分别分配给 spread
和 ind
。我怎样才能做到这一点?请注意,加载后的变量名称在每个循环中都是不同的,即加载#1 时显示为 NS.ticker_list[j,2]
,#2 显示为 Forward.rate.ticker_list[j,2]
.
for(j in 1:nrow(ticker_list)){
load(file = gsub(" ","",paste(ticker_list[j,2],"_NS.rda"))) #1
load(file = gsub(" ","",paste(ticker_list[j,2],"_Forward.rda"))) #2
p <- arima.auto.fun(spread, ind, maturity_list, lag = 1)
}
您可以将每个文件加载到新环境中,将环境转换为列表对象,然后将列表中的第一个(也是唯一一个)对象分配给 spread
和 ind
变量.您没有提供可重现的示例,因此以下是一个粗略的猜测。我还删除了 gsub
似乎不必要的使用,并将其替换为更简单的 paste0
.
for(j in 1:nrow(ticker_list)){
NS_env <- new.env()
Forward_env <- new.env()
load(file = paste0(ticker_list[j,2],"_NS.rda"), envir = NS_env) #1
load(file = paste0(ticker_list[j,2],"_Forward.rda"), envir = Forward_env) #2
NS_list <- as.list(NS_env)
Forward_list <- as.list(Forward_env)
spread <- NS_list[[1]]
ind <- Forward_list[[1]]
p <- arima.auto.fun(spread, ind, maturity_list, lag = 1)
}