Last active
August 22, 2021 11:52
-
-
Save wilsonfreitas/666d743ad7621fb28126038b2b964041 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Untitled0.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"authorship_tag": "ABX9TyNsy4RaWWJJXRN8opuCmESy", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "ir", | |
"display_name": "R" | |
}, | |
"language_info": { | |
"name": "R" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/wilsonfreitas/666d743ad7621fb28126038b2b964041/untitled0.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "2GG_SyyQcKMA", | |
"outputId": "18133957-ceeb-47a7-98c0-93a67e4c2eba" | |
}, | |
"source": [ | |
"library(tidyverse)" | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Warning message in system(\"timedatectl\", intern = TRUE):\n", | |
"“running command 'timedatectl' had status 1”\n", | |
"── \u001b[1mAttaching packages\u001b[22m ─────────────────────────────────────── tidyverse 1.3.1 ──\n", | |
"\n", | |
"\u001b[32m✔\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.5 \u001b[32m✔\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n", | |
"\u001b[32m✔\u001b[39m \u001b[34mtibble \u001b[39m 3.1.3 \u001b[32m✔\u001b[39m \u001b[34mdplyr \u001b[39m 1.0.7\n", | |
"\u001b[32m✔\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.3 \u001b[32m✔\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n", | |
"\u001b[32m✔\u001b[39m \u001b[34mreadr \u001b[39m 2.0.1 \u001b[32m✔\u001b[39m \u001b[34mforcats\u001b[39m 0.5.1\n", | |
"\n", | |
"── \u001b[1mConflicts\u001b[22m ────────────────────────────────────────── tidyverse_conflicts() ──\n", | |
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n", | |
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n", | |
"\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "1GFJ6zsglVK9", | |
"outputId": "aed7e87a-8ed0-4d43-cb71-7518f3b8eecb" | |
}, | |
"source": [ | |
"library(bizdays)" | |
], | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
"Attaching package: ‘bizdays’\n", | |
"\n", | |
"\n", | |
"The following object is masked from ‘package:stats’:\n", | |
"\n", | |
" offset\n", | |
"\n", | |
"\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "9CSyAH98k-Rm" | |
}, | |
"source": [ | |
"free <- c(\"2021-01-01\", \"2021-01-06\", \"2021-04-04\", \"2021-04-05\", \"2021-05-06\", \"2021-05-03\",\n", | |
" \"2021-05-23\", \"2021-06-03\", \"2021-08-15\", \"2021-11-01\", \"2021-11-11\",\n", | |
" \"2021-12-30\", \"2021-12-26\") |> as.Date()\n" | |
], | |
"execution_count": 6, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "c8mEKPu5lD2p" | |
}, | |
"source": [ | |
"create.calendar(name=\"pol\",\n", | |
" holidays = free,\n", | |
" weekdays=c(\"saturday\", \"sunday\"),\n", | |
" start.date = as.Date(\"2021-01-01\"),\n", | |
" end.date = as.Date(\"2021-12-31\"),\n", | |
" financial = FALSE)\n" | |
], | |
"execution_count": 26, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "fC0w3h6IlqwN", | |
"outputId": "03a7e873-bd4a-4fd5-ebc3-40aa7e706e67" | |
}, | |
"source": [ | |
"library(lubridate)" | |
], | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"\n", | |
"Attaching package: ‘lubridate’\n", | |
"\n", | |
"\n", | |
"The following objects are masked from ‘package:base’:\n", | |
"\n", | |
" date, intersect, setdiff, union\n", | |
"\n", | |
"\n" | |
], | |
"name": "stderr" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 136 | |
}, | |
"id": "w6J-mkFdlyb0", | |
"outputId": "8aa7957f-4d00-4bec-c4c9-f74a57611d84" | |
}, | |
"source": [ | |
"calendars()[[\"pol\"]]" | |
], | |
"execution_count": 27, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"pol non financial calendar \n", | |
" 13 holidays \n", | |
" 2 weekdays (saturday, sunday) \n", | |
" range from 2021-01-01 to 2021-12-31 \n", | |
"bizdays arguments adjust\n", | |
" from: none \n", | |
" to: none " | |
] | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "aH8LFQwopU9p" | |
}, | |
"source": [ | |
"bizdays2 <- function(from, to, cal) {\n", | |
" x <- \\(from, to) seq(from, to, by = \"day\") |> is.bizday(cal) |> sum()\n", | |
" mapply(x, from, to)\n", | |
"}" | |
], | |
"execution_count": 48, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 469 | |
}, | |
"id": "DyDGaknAmXk0", | |
"outputId": "45262955-8260-40ef-b1e1-e0f9b6955f38" | |
}, | |
"source": [ | |
"tibble(\n", | |
" from = ymd(paste0(\"2021-\", 1:12, \"-01\")),\n", | |
" to = lead(from, default = as.Date(\"2021-12-31\"))-1,\n", | |
" bizdays = bizdays(from = from, to = to, \"pol\"),\n", | |
" bizdays2 = bizdays2(from, to, \"pol\"),\n", | |
" check = bizdays == bizdays2)\n" | |
], | |
"execution_count": 50, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
" from to bizdays bizdays2 check\n", | |
"1 2021-01-01 2021-01-31 19 19 TRUE \n", | |
"2 2021-02-01 2021-02-28 20 20 TRUE \n", | |
"3 2021-03-01 2021-03-31 23 23 TRUE \n", | |
"4 2021-04-01 2021-04-30 21 21 TRUE \n", | |
"5 2021-05-01 2021-05-31 19 19 TRUE \n", | |
"6 2021-06-01 2021-06-30 21 21 TRUE \n", | |
"7 2021-07-01 2021-07-31 22 22 TRUE \n", | |
"8 2021-08-01 2021-08-31 22 22 TRUE \n", | |
"9 2021-09-01 2021-09-30 22 22 TRUE \n", | |
"10 2021-10-01 2021-10-31 21 21 TRUE \n", | |
"11 2021-11-01 2021-11-30 20 20 TRUE \n", | |
"12 2021-12-01 2021-12-30 21 21 TRUE " | |
], | |
"text/latex": "A tibble: 12 × 5\n\\begin{tabular}{lllll}\n from & to & bizdays & bizdays2 & check\\\\\n <date> & <date> & <dbl> & <int> & <lgl>\\\\\n\\hline\n\t 2021-01-01 & 2021-01-31 & 19 & 19 & TRUE\\\\\n\t 2021-02-01 & 2021-02-28 & 20 & 20 & TRUE\\\\\n\t 2021-03-01 & 2021-03-31 & 23 & 23 & TRUE\\\\\n\t 2021-04-01 & 2021-04-30 & 21 & 21 & TRUE\\\\\n\t 2021-05-01 & 2021-05-31 & 19 & 19 & TRUE\\\\\n\t 2021-06-01 & 2021-06-30 & 21 & 21 & TRUE\\\\\n\t 2021-07-01 & 2021-07-31 & 22 & 22 & TRUE\\\\\n\t 2021-08-01 & 2021-08-31 & 22 & 22 & TRUE\\\\\n\t 2021-09-01 & 2021-09-30 & 22 & 22 & TRUE\\\\\n\t 2021-10-01 & 2021-10-31 & 21 & 21 & TRUE\\\\\n\t 2021-11-01 & 2021-11-30 & 20 & 20 & TRUE\\\\\n\t 2021-12-01 & 2021-12-30 & 21 & 21 & TRUE\\\\\n\\end{tabular}\n", | |
"text/markdown": "\nA tibble: 12 × 5\n\n| from <date> | to <date> | bizdays <dbl> | bizdays2 <int> | check <lgl> |\n|---|---|---|---|---|\n| 2021-01-01 | 2021-01-31 | 19 | 19 | TRUE |\n| 2021-02-01 | 2021-02-28 | 20 | 20 | TRUE |\n| 2021-03-01 | 2021-03-31 | 23 | 23 | TRUE |\n| 2021-04-01 | 2021-04-30 | 21 | 21 | TRUE |\n| 2021-05-01 | 2021-05-31 | 19 | 19 | TRUE |\n| 2021-06-01 | 2021-06-30 | 21 | 21 | TRUE |\n| 2021-07-01 | 2021-07-31 | 22 | 22 | TRUE |\n| 2021-08-01 | 2021-08-31 | 22 | 22 | TRUE |\n| 2021-09-01 | 2021-09-30 | 22 | 22 | TRUE |\n| 2021-10-01 | 2021-10-31 | 21 | 21 | TRUE |\n| 2021-11-01 | 2021-11-30 | 20 | 20 | TRUE |\n| 2021-12-01 | 2021-12-30 | 21 | 21 | TRUE |\n\n", | |
"text/html": [ | |
"<table class=\"dataframe\">\n", | |
"<caption>A tibble: 12 × 5</caption>\n", | |
"<thead>\n", | |
"\t<tr><th scope=col>from</th><th scope=col>to</th><th scope=col>bizdays</th><th scope=col>bizdays2</th><th scope=col>check</th></tr>\n", | |
"\t<tr><th scope=col><date></th><th scope=col><date></th><th scope=col><dbl></th><th scope=col><int></th><th scope=col><lgl></th></tr>\n", | |
"</thead>\n", | |
"<tbody>\n", | |
"\t<tr><td>2021-01-01</td><td>2021-01-31</td><td>19</td><td>19</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-02-01</td><td>2021-02-28</td><td>20</td><td>20</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-03-01</td><td>2021-03-31</td><td>23</td><td>23</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-04-01</td><td>2021-04-30</td><td>21</td><td>21</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-05-01</td><td>2021-05-31</td><td>19</td><td>19</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-06-01</td><td>2021-06-30</td><td>21</td><td>21</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-07-01</td><td>2021-07-31</td><td>22</td><td>22</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-08-01</td><td>2021-08-31</td><td>22</td><td>22</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-09-01</td><td>2021-09-30</td><td>22</td><td>22</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-10-01</td><td>2021-10-31</td><td>21</td><td>21</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-11-01</td><td>2021-11-30</td><td>20</td><td>20</td><td>TRUE</td></tr>\n", | |
"\t<tr><td>2021-12-01</td><td>2021-12-30</td><td>21</td><td>21</td><td>TRUE</td></tr>\n", | |
"</tbody>\n", | |
"</table>\n" | |
] | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "s-kEr0LJnZJg" | |
}, | |
"source": [ | |
"" | |
], | |
"execution_count": null, | |
"outputs": [] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment