我是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 here和here,但这些似乎并不相关。我猜这个错误意味着adstock没有计算,因此是NULL,但我不能 找出原因;任何帮助,将不胜感激。
答案 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)
}