How to check whether a year or a vector of years is leap year or not in R?


Almost everyone knows that a leap has 366 instead of 365 days and it occurs once in four years. If we want to check whether a particular year is a leap year or in a range of years which years correspond to leap year then we can use leap_year function of leap year. The length function can be used with the year value and if the output is 1 then it will be a leap year otherwise the output will be 0 which refers to the non-leap year.

Loading lubridate package −

Example

library("lubridate")
year1<-2000
length(year1[leap_year(year1)])

output

[1] 1

Example

year2<-2001
length(year2[leap_year(year2)])

output

[1] 0

Example

year3<-2004
length(year3[leap_year(year3)])

output

[1] 1

Example

year4<-0001:0010
length(year4[leap_year(year4)])

output

[1] 2

Example

year5<-0001:0050
length(year5[leap_year(year5)])

output

[1] 12

Example

year6<-0001:0100
length(year6[leap_year(year6)])

output

[1] 24

Example

year7<-0001:1000
length(year7[leap_year(year7)])

output

[1] 242

We can also find the years that were leap years during year 1 to year 1000 by just removing the length command as shown below −

Example

year7[leap_year(year7)]

output

[1] 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72
 [19] 76 80 84 88 92 96 104 108 112 116 120 124 128 132 136 140 144 148
[37] 152 156 160 164 168 172 176 180 184 188 192 196 204 208 212 216 220 224
[55] 228 232 236 240 244 248 252 256 260 264 268 272 276 280 284 288 292 296
[73] 304 308 312 316 320 324 328 332 336 340 344 348 352 356 360 364 368 372
[91] 376 380 384 388 392 396 400 404 408 412 416 420 424 428 432 436 440 444
[109] 448 452 456 460 464 468 472 476 480 484 488 492 496 504 508 512 516 520
[127] 524 528 532 536 540 544 548 552 556 560 564 568 572 576 580 584 588 592
[145] 596 604 608 612 616 620 624 628 632 636 640 644 648 652 656 660 664 668
[163] 672 676 680 684 688 692 696 704 708 712 716 720 724 728 732 736 740 744
 [181] 748 752 756 760 764 768 772 776 780 784 788 792 796 800 804 808 812 816
[199] 820 824 828 832 836 840 844 848 852 856 860 864 868 872 876 880 884 888
[217] 892 896 904 908 912 916 920 924 928 932 936 940 944 948 952 956 960 964
[235] 968 972 976 980 984 988 992 996

Example

year8<-1001:1200
year8[leap_year(year8)]

output

[1] 1004 1008 1012 1016 1020 1024 1028 1032 1036 1040 1044 1048 1052 1056 1060
[16] 1064 1068 1072 1076 1080 1084 1088 1092 1096 1104 1108 1112 1116 1120 1124
[31] 1128 1132 1136 1140 1144 1148 1152 1156 1160 1164 1168 1172 1176 1180 1184
[46] 1188 1192 1196 1200

Example

length(year8[leap_year(year8)])

output

[1] 49

Example

year9<-1001:2000 year9[leap_year(year9)]

output

[1] 1004 1008 1012 1016 1020 1024 1028 1032 1036 1040 1044 1048 1052 1056 1060
[16] 1064 1068 1072 1076 1080 1084 1088 1092 1096 1104 1108 1112 1116 1120 1124
 [31] 1128 1132 1136 1140 1144 1148 1152 1156 1160 1164 1168 1172 1176 1180 1184
 [46] 1188 1192 1196 1200 1204 1208 1212 1216 1220 1224 1228 1232 1236 1240 1244
[61] 1248 1252 1256 1260 1264 1268 1272 1276 1280 1284 1288 1292 1296 1304 1308
[76] 1312 1316 1320 1324 1328 1332 1336 1340 1344 1348 1352 1356 1360 1364 1368
[91] 1372 1376 1380 1384 1388 1392 1396 1404 1408 1412 1416 1420 1424 1428 1432
[106] 1436 1440 1444 1448 1452 1456 1460 1464 1468 1472 1476 1480 1484 1488 1492
[121] 1496 1504 1508 1512 1516 1520 1524 1528 1532 1536 1540 1544 1548 1552 1556
[136] 1560 1564 1568 1572 1576 1580 1584 1588 1592 1596 1600 1604 1608 1612 1616
[151] 1620 1624 1628 1632 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676
[166] 1680 1684 1688 1692 1696 1704 1708 1712 1716 1720 1724 1728 1732 1736 1740
 [181] 1744 1748 1752 1756 1760 1764 1768 1772 1776 1780 1784 1788 1792 1796 1804
[196] 1808 1812 1816 1820 1824 1828 1832 1836 1840 1844 1848 1852 1856 1860 1864
[211] 1868 1872 1876 1880 1884 1888 1892 1896 1904 1908 1912 1916 1920 1924 1928
[226] 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988
[241] 1992 1996 2000

Example

length(year9[leap_year(year9)])

output

[1] 243

Example

year10<-0001:2020
length(year10[leap_year(year10)])

output

[1] 490

Updated on: 14-Oct-2020

299 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements