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