Вы можете использовать функции as.symbol()
и eval()
, чтобы извлечь имена переменных, которые вы строите в l oop, в качестве символов языка и оценить их , когда они используются в качестве входных данных (например, x
в вашем коде).
Вы можете использовать функцию assign()
для создания переменной, имя которой задается переменной , когда они используются в качестве выходных данных (например, y
и z
в вашем коде).
Вот пример доказательства концепции, который показывает, как это работает с использованием ваших переменных x
и z
в двух временных рядах, соответствующих двум городам:
oslots = c(3.5, 2.1, 1.7)
madridts = c(1.9, 2.8, 3.1)
lanlist=list('oslo', 'madrid')
for (i in lanlist)
{
x = paste(i, 'ts', sep="")
cat("Processing time series '", x, "'...\n", sep="")
z = paste('des_', i, 'ts', sep="")
assign(z, eval(as.symbol(x))[1])
cat("The first value of time series '", x, "' is: ", eval(as.symbol(z)), "\n", sep="")
cat("\n")
}
, который должен вывести следующее:
Processing time series 'oslots'...
The first value of time series 'oslots' is: 3.5
Processing time series 'madridts'...
The first value of time series 'madridts' is: 1.9
Я надеюсь, вы сможете перенести эти концепции в свой код, который выполняет сезонную и трендовую декомпозицию временных рядов.