数学建模社区-数学中国
标题:
怎样用function来检验是否是闰年
[打印本页]
作者:
夜筱巫
时间:
2013-8-1 06:07
标题:
怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
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
如果那一年可以整除400
5 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是这样的:
leapyear<- function(dates, years_to_add)
: }+ I2 e" u' X- E ]/ o7 G+ ]
{
6 W! V! l: B% C6 d5 z& w" q y' {, W
if(!require(lubridate)) stop("install lubridate")
; S5 b9 Q6 N# O7 p
if(years_to_add > floor(years_to_add)) stop("error")
9 Q1 B, |( z3 \% Q3 j3 x: q" y
' p% F; W2 f0 v/ b: X/ g
new <- dates + years(years_to_add)
& C$ s y4 D, ~ [" x1 d* f
new[
3 l! u( }8 a5 P1 [
leap_year(year(dates)) &
' t, @1 Y# I7 E$ e( ~
!leap_year(year(dates) + years_to_add) &
$ J. ~( P( j7 [, n _0 i4 N( {
month(dates) == 2 &
# P/ _# J$ ~6 b. R
day(dates) == 29
$ G" E5 H w e) }
] <- NA
7 a# w5 N) W5 i8 Z
new_dates
6 S) |! }- r. T _
}
, |$ i) y$ @' [! Q* }
, @& N @5 }; H3 \ g6 _8 u: _
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