数学建模社区-数学中国

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

作者: 夜筱巫    时间: 2013-8-1 06:07
标题: 怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
  1. leapyear<-function(x){}
复制代码
闰年这里的定义是:
& A7 [7 A/ n4 Q9 f如果那一年可以整除4(比如2004),2月就有29天
- K; p; e$ c: H- J! o+ }如果那一年不能整除100
% g# D- h; c2 t' p2 S, B如果那一年可以整除400
0 `  E# W% w0 Q( m4 {# ?8 Z- B  v' {" k  ]
如果x<1,这个function就要return “error”。我不大懂这个条件的意思,可否请大师解释下?
( E, p0 M1 @: J; Z* g9 a
/ i( l3 |* \3 R" K) B# X+ [3 V我写的function是这样的:
  1. leapyear<- function(dates, years_to_add), B# r/ Y: z2 ~3 W7 G/ }* s
  2. {
    ' j6 u) c0 g6 T8 S0 g
  3.   if(!require(lubridate)) stop("install lubridate"); @, C0 B. C. \0 s& E
  4.   if(years_to_add > floor(years_to_add)) stop("error")9 L, C; F; U: A7 S/ Q
  5.   ; n# o# _$ y9 |+ C7 y
  6.   new <- dates + years(years_to_add)
    * H! P5 P+ }/ D
  7.   new[
    1 A1 u: j- p/ j& \/ `1 a9 A. B
  8.     leap_year(year(dates)) &
    ; N" t( @9 a; Y2 B1 g) \/ \# z
  9.       !leap_year(year(dates) + years_to_add) &
    5 B% O0 K  p: e
  10.       month(dates) == 2 & 6 Q( ]0 w2 ^( k2 j8 E: J
  11.       day(dates) == 29( H0 G) y2 b. z+ ^
  12.     ] <- NA
    9 }: n9 \2 \2 M! [, Q& k( R# k& G3 Y
  13.   new_dates
    : ]! G" a* f0 ?
  14. }
    4 G2 d) f; U; c9 J+ i; E3 G

  15. ! s0 N3 \" R$ h% f+ }( G3 t, H
  16. dates <- ymd(c("2004-2-28", "2004-2-29"))
复制代码
不知道对不对,但是检验的时候显示ymd找不到。。。。
# o' x. Y5 U& L) _6 `) |) J& u7 E% a) e! U/ I: ]
请各位大师帮帮忙!小妹感激不尽!




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