변수를 지연리드를 생성하고 내가 리드를 생성해야하고 R에 아래와 같은 변수를 지연 R
가정하자 내가 어떤 가게에 고객의 방문에 대한 세부 사항을 가진 dataframe을 ...이
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
하지만, 나는 고객에 의해 지체하고 싶다. 좋은데. 그래서 4 행에 대해 지연된 날짜는 내가이 작업을 수행하려면 어떻게 .. 3 cstomer를 들어, 첫 번째 행/항목 notihng과 마지막 행에, 난 2013년 1월 4일을 볼 수 있어야한다 nothing..similarly해야 하는가?
다음
내가 지연에 사용할 코드/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