Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用;至于;在R中循环以创建不同的时间序列_R_Loops_For Loop_Time Series - Fatal编程技术网

如何使用;至于;在R中循环以创建不同的时间序列

如何使用;至于;在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()创建一个变量,当变量用作输出时

我是R的新手,我正在尝试解决以下问题:我需要为40个不同的城市创建40个不同的季节性调整时间序列。这个 一个时间序列的有效代码如下所示(本例中为斯德哥尔摩)

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