R - 将日期作为函数的参数传递

时间:2016-04-23 16:52:32

标签: r date dataframe

我想从data.frame中选择某些日期并对它们执行一些操作。 我的函数的参数是我需要对data.frame的一列进行子集化的日期。当我在函数中直接写这个日期时,它可以工作。当我将日期作为函数的参数传递时,我得到以下错误。

这是我的功能:

move.in.Vs.booking.request <-function(date1="2016-03-10"){

       Bookings <- read.csv( "bookings.csv", header= TRUE, sep=",")

         begin <- date1
         class(begin)<- "date"
         print(begin) #control to see if it get "begin" as a date
         Bookings$Move.in.date  <- Bookings$Move.in.date  
         Bookings$Move.in.date  <- as.Date(Bookings$Move.in.date )

         bk <- Bookings[, c("Move.in.date", "Date.of.booking.request")]
         move.in.date.period <- bk[bk$Move.in.date>= "begin" & bk$Move.in.date <= "2016-04-10", ] 

            booking.request <- as.Date(move.in.date.period$Date.of.booking.request)  

               booking.request <- month(booking.request)
               month.request <- count(booking.request, vars = NULL, wt_var = NULL)

                 print(month.request)
             }

我使用默认参数值调用该函数。

 move.in.Vs.booking.request()

我收到此错误:

enter code here`[1] "2016-03-10"
attr(,"class")
[1] "date"
 Show Traceback

 Rerun with Debug
 Error in charToDate(x) : 
  character string is not in a standard unambiguous format 

1 个答案:

答案 0 :(得分:0)

谢谢你们。我的错误是平庸的。此行中不需要“开始”周围的撇号:

move.in.date.period&lt; - bk [bk $ Move.in.date&gt; =“begin”&amp; bk $ Move.in.date&lt; =“2016-04-10”,]