2017-01-13 27 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