在R中的多个列上运行季节性分解

时间:2017-08-29 00:28:05

标签: r stl

我正在学习使用R编写代码,并且一直在努力工作以获得非常简单的工作。我有一个产品价格的数据库,每列代表一个产品的时间序列。我想在每列上运行时间序列的季节性分解,并将结果放在按产品名称分隔的列表中。

当我运行下面的代码时,我收到错误:

分配错误(paste(j),x [j])< - (stl(dados_resumo [,x],s.window =" periodic")):找不到函数&# 34;分配< - "

for (i in 1:3)
{
    x <- (i)
    for(j in colnames(df)){
    assign(paste(j), x[j]) <- (stl(df[,x], s.window="periodic"))
    }
} 

2 个答案:

答案 0 :(得分:0)

我不确定你的数据框是什么样的,所以我将手动进行此操作。

首先,assign不是一个函数,这正是错误告诉你的。

for( i in 1:length( df ) )
{
   df$stl[i] <- stl( df[,i], s.window = "periodic" )
}

答案 1 :(得分:0)

&#39;&分配LT; - &#39;然而,不是一个功能,分配&#39;是; 以assign的形式使用(varname,varvalue,environment) 例如,如果你想分配价值&#34; bigworld&#34;在全球环境中将变量命名为x 你可以用

assign(x,"bigworld",envir=.GlobalEnv)

envir可以设置为envir = .GlobalEnv,这样即使在堆栈或调用链深处的函数中,也可以在全局环境中为var赋值

等式

 x = a 

 x <- a

也可以用于赋值但在函数内部,这不会影响全局值,一旦返回函数,x被删除