数学建模社区-数学中国

标题: 怎样用function来检验是否是闰年 [打印本页]

作者: 夜筱巫    时间: 2013-8-1 06:07
标题: 怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
  1. leapyear<-function(x){}
复制代码
闰年这里的定义是:9 O$ ?0 F; B  J$ X7 V
如果那一年可以整除4(比如2004),2月就有29天
& y# }2 A# C8 `0 Y+ n如果那一年不能整除100
, F8 ~" o% E8 v如果那一年可以整除4009 }" h7 d* h6 D- ]) p
* s" V9 n: D* ~
如果x<1,这个function就要return “error”。我不大懂这个条件的意思,可否请大师解释下?
7 `0 ?+ W$ p4 `2 @9 p7 J. t0 V0 i1 W7 o3 O
我写的function是这样的:
  1. leapyear<- function(dates, years_to_add)# S# t2 u+ g6 I8 P* Q5 U
  2. {
    - p6 p# Y/ i# e$ O2 {, |
  3.   if(!require(lubridate)) stop("install lubridate")
    5 `$ B) r7 ?$ K4 i, Z
  4.   if(years_to_add > floor(years_to_add)) stop("error")
    0 O' M5 `* u  f; [
  5.   
    % m& }3 e* g$ [8 |
  6.   new <- dates + years(years_to_add): J4 l1 l6 Y( ~- P% r! B+ h
  7.   new[
    ' p1 }7 T6 l( r) B7 m0 @' {
  8.     leap_year(year(dates)) &
    $ w$ j3 a! s1 F+ X( @  g8 e
  9.       !leap_year(year(dates) + years_to_add) &
    9 j- i7 {  t+ l7 u7 ?. ]
  10.       month(dates) == 2 &
    ; y9 T) o: ~6 X
  11.       day(dates) == 29
      K, s# t) v6 v7 U+ v% L% _
  12.     ] <- NA: g6 h) k& K9 ^# R8 L6 A
  13.   new_dates
    : X; T) h! i6 R; [  H2 o1 E' V- n; t
  14. }
    / k; W1 [9 k6 U1 I

  15. & Q& H) ]' o! ^2 `7 H" a6 m1 a
  16. dates <- ymd(c("2004-2-28", "2004-2-29"))
复制代码
不知道对不对,但是检验的时候显示ymd找不到。。。。+ x, E/ Y9 w" `* B
4 m/ _2 k' _) e& m1 j  L
请各位大师帮帮忙!小妹感激不尽!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5