2017-01-13 29 views
2

我試圖去用下面的代碼日期之間的所有工作日的載體:[R setdiff作用導致奇怪的結果

days_of_month = seq(as.Date("2017-01-01"), as.Date("2017-01-31"), by="days") 
sundays = c(as.Date("2017-01-01"), as.Date("2017-01-08"), as.Date("2017-01-15"), as.Date("2017-01-22"), as.Date("2017-01-29")) 

當我這樣做:

working_days = setdiff(days_of_month, sundays) 

setdiff的返回值是奇怪值的向量:

[1] 17168 17169 17170 17171 17172 17173 17175 17176 17177 17178 17179 17180 
[13] 17182 17183 17184 17185 17186 17187 17189 17190 17191 17192 17193 17194 
[25] 17196 17197 

那些是什麼價值觀?以及我如何獲得days_of_month中的日期的矢量,但不是sundays

+1

也許'as.Date(setdiff(days_of_month,sundays),origin =「1970-01-01」)'?你想修改星期天的矢量。這不起作用。 – jazzurro

+1

這些奇怪的值只是自1970-01-01以來的天數(默認原點)。 – Haboryme

+1

'days_of_month [!days_of_month%in%sundays]' –

回答

1

這些是R S3 class Date的內部數值。您可以通過as.numeric(days_of_month)查看數值。或者,您可以通過as.Date(working_days, origin="1970-01-01")將結果轉換爲Date