데이터 프레임에 2 개의 날짜 변수 WK_BEGIN_DT & WK_END_DT가 있습니다 (예 : DAT). 둘 다 문자 형식입니다. 나는 다음과 같은 것을 얻으려고 노력하고있다. 내가 여기에 SAS 명령을 사용하지만, R의 일 변환
내 데이터는 다음과 같습니다 R.
에서 동일한 작업을 수행 할 해요 :var1 Begin_DT End_DT
1 02/07/2012 02/11/2012
2 04/09/2012 04/15/2012
3 04/17/2012 04/23/2012
4 06/21/2012 06/30/2012
5 07/15/2012 07/29/2012
SAS 코드 : 1 부 문제에 대한
DATA DAT;
set DAT;
## PART 1: ##
WK_BEGIN_DT = BEGIN_DT - 2 ;
WK_END_DT = WK_BEGIN_DT + 6 ;
## PART 2: ##
if WEEKDAY(WK_END_DT) ^= 6 then do ;
if weekday(WK_END_DT) = 7 then WK_END_DT = WK_END_DT + 6 ;
else WK_END_DT = WK_END_DT + 6 - weekday(WK_END_DT) ;
end ;
, 내가 계산 한 후
DAT$new.dt <- DAT$wk_end_dt - as.difftime(2, unit="days")
을 시도, 결과는 같아야합니다 :
,691Error in `$<-.data.frame`(`*tmp*`, "new.dt", value = numeric(0)) :
replacement has 0 rows, data has 2354
이 사람이 어떻게 PART 1 & 2 부 모두에 대한 결과를 얻을 수 있도록 도와 주시겠습니까 :
var1 Begin_DT End_DT Wk_Begin_DT WK_END_DT
1 02/07/2012 02/11/2012 02/05/2012 02/12/2012
2 04/09/2012 04/15/2012 04/07/2012 04/15/2012
3 04/17/2012 04/23/2012 04/15/2012 04/23/2012
4 06/21/2012 06/30/2012 06/19/2012 06/25/2012
5 07/15/2012 07/29/2012 07/13/2012 07/21/2012
그러나 다음과 같은 오류를 보여?
감사합니다. 감사합니다,
데이터를 수정하거나 몇 가지 예제 데이터를 게시하십시오. – Maiasaura
'DAT $ wk_end_dt'를 날짜 - 시간 분류 변수로 만들어야합니다. 나는 아직 그것이라고 생각하지 않는다. ? strptime 및? format.POSIXct를 읽습니다. –
귀하의 의견에 감사드립니다. 나는 strptime을 시도했다. (DAT $ end_dt, "% m/% d/% Y"). 그것은 변환 중입니다. 하지만 계산은하지 않습니다. 처음에는 as.Date (DAT $ end_dt, "% m/% d/% Y")와 같은 작업을 수행했습니다. 그런 다음 나는 strptime과 같은 결과를 얻고있었습니다. 나는 또한 POSIXct를 시도했다. 게시물을 통해 아이디어를 얻었습니다. http://stackoverflow.com/questions/2254986/how-to-subtract-days-in-r – Beta