0
變量我要創建鉛和R中的滯後變量,如下面創建超前和滯後R中
假設我有其中有關於客戶的訪問任何商店細節的數據幀...
CustomerID Dateofvisit
1 1/2/2013
1 1/3/2013
1 1/7/2013
2 1/9/2013
2 1/14/2013
2 2/14/2013
3 1/4/2013
3 1/5/2013
我們可以看到,有3個客戶提供不同的訪問日期。當我在上面的應用滯後功能...(我創建了自己的功能,)..它變得像下面:
CustomerID Dateofvisit Laggeddate
1 1/2/2013 -
1 1/3/2013 1/2/2013
1 1/7/2013 1/3/2013
2 1/9/2013 1/7/2013
2 1/14/2013 1/9/2013
2 2/14/2013 1/14/2013
3 1/4/2013 2/14/2013
3 1/5/2013 1/4/2013
但是,我想要落後於客戶a脹。所以對於第四排,落後的日期應該是沒有什麼的。類似的第三個客戶,第一排/入口應該是notihng和最後一排,我應該看到1/4/2013 ..我該怎麼做?
以下是代碼我使用的滯後/超前
shift<-function(x,shift_by){
stopifnot(is.numeric(shift_by))
stopifnot(is.numeric(x))
if (length(shift_by)>1)
return(sapply(shift_by,shift, x=x))
out<-NULL
abs_shift_by=abs(shift_by)
if (shift_by > 0)
out<-c(tail(x,-abs_shift_by),rep(NA,abs_shift_by))
else if (shift_by < 0)
out<-c(rep(NA,abs_shift_by), head(x,-abs_shift_by))
else
out<-x
out
}
以及如何我帶領/滯後他們:
#generate lead by 1 variable
test$df_lead2<-shift(test$x,1)
#generate lag by 1 variable
test$df_lag2<-shift(test$x,-1)
我所需的輸出是:
CustomerID Dateofvisit Laggeddate
1 1/2/2013 -
1 1/3/2013 1/2/2013
1 1/7/2013 1/3/2013
2 1/9/2013 -
2 1/14/2013 1/9/2013
2 2/14/2013 1/14/2013
3 1/4/2013 -
3 1/5/2013 1/4/2013
我*想*我明白了滯後的預期輸出的文字你的描述,但你應該添加所需的輸出(類似於失敗的嘗試,你在內)的例子無論是滯後和鉛。 – Henrik