如何使用;至于;在R中循环以创建不同的时间序列
我是R的新手,我正在尝试解决以下问题:我需要为40个不同的城市创建40个不同的季节性调整时间序列。这个 一个时间序列的有效代码如下所示(本例中为斯德哥尔摩)如何使用;至于;在R中循环以创建不同的时间序列,r,loops,for-loop,time-series,R,Loops,For Loop,Time Series,我是R的新手,我正在尝试解决以下问题:我需要为40个不同的城市创建40个不同的季节性调整时间序列。这个 一个时间序列的有效代码如下所示(本例中为斯德哥尔摩) stockholmtsdeco=stl(stockholmts[,5],window=“periodic”) des_stockholmts您可以使用函数as.symbol()和eval()来检索在循环中作为语言符号构建的变量名,并在它们用作输入时对它们进行求值(例如代码中的x) 您可以使用函数assign()创建一个变量,当变量用作输出时
stockholmtsdeco=stl(stockholmts[,5],window=“periodic”)
des_stockholmts您可以使用函数as.symbol()
和eval()
来检索在循环中作为语言符号构建的变量名,并在它们用作输入时对它们进行求值(例如代码中的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
我相信您能够将这些概念应用到代码中,以执行时间序列的季节性和趋势分解。非常直观的答案,谢谢!作为一个新的投稿人,如果你认为你收到的答案对你的问题有帮助或解决了你的问题,我很乐意告诉你该怎么做:遵循这些指导方针帮助社区。谢谢!:)
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