数学建模社区-数学中国
标题:
怎样用function来检验是否是闰年
[打印本页]
作者:
夜筱巫
时间:
2013-8-1 06:07
标题:
怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
leapyear<-function(x){}
复制代码
闰年这里的定义是:
' r6 b" r( R6 a7 I1 y; f* {, J
如果那一年可以整除4(比如2004),2月就有29天
2 a, V! G% r1 y2 M3 a1 z1 S
如果那一年不能整除100
! i' B6 r2 p7 I# ^
如果那一年可以整除400
2 `# f/ T" A' q8 F- ^) D# ?
" w! V' K" f4 Q* J4 F+ @- Z
如果x<1,这个function就要return “error”。我不大懂这个条件的意思,可否请大师解释下?
1 x% p- ^9 I6 Q9 T% u
0 Y; T( l( z/ N! k1 G A( y4 e
我写的function是这样的:
leapyear<- function(dates, years_to_add)
" i7 s/ [+ F5 z/ | i7 a, p" v) K
{
3 Q( m8 E$ p9 i9 q
if(!require(lubridate)) stop("install lubridate")
# t# n' c1 y8 U4 }8 f
if(years_to_add > floor(years_to_add)) stop("error")
4 i% O( V% `+ B' B: j
9 ]7 T1 ]; N3 M7 i, w( t8 H/ B
new <- dates + years(years_to_add)
0 |6 E. M3 b& |. ~' O1 ? y
new[
" a l* ~! Q; ?
leap_year(year(dates)) &
+ a4 x; a8 K/ a) m# _7 m2 X/ |- _3 J
!leap_year(year(dates) + years_to_add) &
) e" G" L) v# H8 s9 d1 Q& H9 ~
month(dates) == 2 &
, K7 t0 p4 O* P. W. q7 q1 |$ Y
day(dates) == 29
# l. }; Y! b3 v
] <- NA
( i# ], b- C7 a9 \7 m
new_dates
' e/ Z# ?* s( o5 N9 c5 _' Z
}
! K! j/ V; w w) V
9 u& }8 X/ U: u2 M
dates <- ymd(c("2004-2-28", "2004-2-29"))
复制代码
不知道对不对,但是检验的时候显示ymd找不到。。。。
2 f' P# X6 z) }1 R! W+ X
} E. |6 b# g, o* f% q
请各位大师帮帮忙!小妹感激不尽!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5