Adstock应用:参数意味着不同的行数

时间:2014-03-03 01:29:50

标签: r runtime-error regression

我是R的新手并尝试设置数据的回归运行 与Adstock一样的衰变包含在该数据中 网络搜索揭示了我试图适应的一个例子 为了我的目的,但我遇到了这里描述的问题 在这个简化的例子中。 (可能会有更多问题; 欢迎任何评论!)

# adstock calc
adstock_Nx_calc <- function(media){
  length <- length(media)
  adstock <- rep(0,length)
  for(i in 2:length){
    adstock[i] <- media[i] + (adstock[i-1]*.7)
  }
}

# Function for creating Nx test sets
create_Nxtest_sets<-function(base_p){

  # 10 weeks of data
  week <- 1:10

  # Base sales of base_p units
  base<-rep(base_p,10)

  # set up NxE parameters
  NxE <- c(24,14,33,19,32,10,5,15,12,1)

  # set up adstock
  adstock <- adstock_Nx_calc(NxE)

  # sales equation
  sales <- base + NxE + adstock

  # set up output data.frame
  output<-data.frame(week, sales, NxE, adstock)
  output  
}

test <- create_Nxtest_sets(base_p=1500)

产生的错误是“参数意味着不同的行数:10,0” 我一般都搜索了SO herehere,但这些似乎并不相关。我猜这个错误意味着adstock没有计算,因此是NULL,但我不能 找出原因;任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要从adstock_Nx_calc返回adstock,如下所示:

adstock_Nx_calc <- function(media){
  length <- length(media)
  adstock <- rep(0,length)
  for(i in 2:length){
    adstock[i] <- media[i] + (adstock[i-1]*.7)
  }
  return(adstock)
}