数学建模社区-数学中国

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

作者: 夜筱巫    时间: 2013-8-1 06:07
标题: 怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
  1. leapyear<-function(x){}
复制代码
闰年这里的定义是:6 ^$ s& t6 a# S" g* P! W4 {  @4 j
如果那一年可以整除4(比如2004),2月就有29天
+ x# U  x$ V9 i' l9 q/ ^' O% Q; G& y5 H5 h如果那一年不能整除100) x/ `, l6 p8 o! |! T5 u# F% N
如果那一年可以整除4005 Z: D+ N7 y  H( w8 {! r
# G/ Z2 U8 A6 a! c5 P6 U7 ]3 m
如果x<1,这个function就要return “error”。我不大懂这个条件的意思,可否请大师解释下?" K2 P: }% ~% W) ]5 \. k

3 P( A8 J  l, x* K* Q我写的function是这样的:
  1. leapyear<- function(dates, years_to_add)
    : }+ I2 e" u' X- E  ]/ o7 G+ ]
  2. {6 W! V! l: B% C6 d5 z& w" q  y' {, W
  3.   if(!require(lubridate)) stop("install lubridate"); S5 b9 Q6 N# O7 p
  4.   if(years_to_add > floor(years_to_add)) stop("error")
    9 Q1 B, |( z3 \% Q3 j3 x: q" y
  5.   ' p% F; W2 f0 v/ b: X/ g
  6.   new <- dates + years(years_to_add)
    & C$ s  y4 D, ~  [" x1 d* f
  7.   new[
    3 l! u( }8 a5 P1 [
  8.     leap_year(year(dates)) &
    ' t, @1 Y# I7 E$ e( ~
  9.       !leap_year(year(dates) + years_to_add) & $ J. ~( P( j7 [, n  _0 i4 N( {
  10.       month(dates) == 2 &
    # P/ _# J$ ~6 b. R
  11.       day(dates) == 29$ G" E5 H  w  e) }
  12.     ] <- NA
    7 a# w5 N) W5 i8 Z
  13.   new_dates
    6 S) |! }- r. T  _
  14. }, |$ i) y$ @' [! Q* }

  15. , @& N  @5 }; H3 \  g6 _8 u: _
  16. dates <- ymd(c("2004-2-28", "2004-2-29"))
复制代码
不知道对不对,但是检验的时候显示ymd找不到。。。。
( p1 U9 T3 Z5 F+ N
0 e' @: v" P% K6 B) F请各位大师帮帮忙!小妹感激不尽!




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