2017-02-14 6 views
2

tidyverselubridate으로 시간 순서 벡터를 생성하는 효율적인 방법이 있습니까? 두 사람이 간격으로 날짜 수를 사용할 때 seq()으로 작업 할 수 있다는 것을 알고 있습니다. 예를 들어, 입력과 :R 및 윤활유를 사용하여 일련의 시간 생성

seq(today(), today()+dyears(1), 60) 

하나

"2017-02-14" "2017-04-15" "2017-06-14" "2017-08-13" "2017-10-12" "2017-12-11" "2018-02-09" 

그러나 60 일 간격으로 일련의 날짜를 얻을 수 있습니다,이 , 작동 할 수있는 방법이있다 개월도 마찬가지입니까? 내가 일 것이라고 생각하지만하지 않았다 아래의 코드와 유사한 아마도 뭔가 :

seq(as_date(2000-01-01), as_date(2017-01-01), dyears(1)) 
나는 하나 만 년 또는 한 달 동안 근사치를 필요로하는 경우 365 또는 30dyears(1)을 변경할 수 있습니다 알고

Error: Incompatible duration classes (Duration, numeric). Please coerce with as.duration .

, 그러나 윤년과 달을 고려하는 더 똑똑한 방법이 있는지 궁금해하고있었습니다.


내가 ggplotscale_x_date을 사용자 정의 할 수 있도록 최신 벡터를 생성하고자하는 더 많은 컨텍스트를 제공합니다. waiver()에 2000, 2003, 2006, 2009을 표시하는 대신 가능하면 모든 개별 연도 또는 매 3 개월 기간을 갖기를 원합니다.

+4

'서열을 ' – GGamba

+2

'seq.Date' 만 사용하십시오. 그것은 약간의 마법입니다. 당신은'by = '2 weeks''로 그것을 넘겨 줄 수 있습니다. – alistaire

+0

감사합니다. @G 감바,'seq()'에'by ='에 'weeks'와 'years'을 지정할 수 있다는 것을 몰랐습니다. –

답변

2

당신이 seq.Date()를 사용하여 시도해 볼 수도 있습니다 :

seq.Date(from=as.Date("2000-01-01"), to=as.Date("2010-01-01"), by="month") 

나 : ((1) = '주 오늘()는 오늘() + dyears)

seq(as.Date("2000/1/1"), by = "month", length.out = 12)