From bf617b4e6eaf41ccd9167cc5a7bc85da6bdefa55 Mon Sep 17 00:00:00 2001 From: nilbuild <4921183+nilbuild@users.noreply.github.com> Date: Mon, 7 Sep 2026 09:38:00 +0000 Subject: [PATCH] chore: sync content to repo --- .../aesthetic-mappings@HDWIMwjBFh4vKw_BYo0bF.md | 9 +++++++++ .../content/apis@V_cnhs4qzp-SLnLaGXC1l.md | 9 +++++++++ .../content/apply-family@yqCapCzAFkWZvebvkuHNV.md | 9 +++++++++ .../arguments--defaults@qSJI_xsSN3wPY3ud0bZdm.md | 8 ++++++++ .../content/arrays@fy2pI0rjkw9d8THIHgDuN.md | 8 ++++++++ .../content/base-r-plotting@Ytwncvf4YOgLPNnczOpts.md | 9 +++++++++ .../content/basic-syntax@nDFlbYOe7U7mVJadKYy_W.md | 10 ++++++++++ .../content/best-practices@OLOZSNHrOFD3claBXNKxP.md | 9 +++++++++ .../content/big-data-tools@GkxSrpOJx-SWvnDkTPcJt.md | 9 +++++++++ .../content/casting-types@XI8bvhQ3ugezTu60USUG2.md | 10 ++++++++++ .../content/character@ghrVl-VfVDvpyBIl6N4xM.md | 8 ++++++++ .../content/comments@IahDxQfLvld-qCAeAuAo-.md | 8 ++++++++ .../content/common-plots@1uWW6PP2uWqKU4Ya5GzVO.md | 8 ++++++++ .../content/complex@SQh5uCFmpecdc-_PtyCEp.md | 7 +++++++ .../conditional-statements@bN3DAVH9lstsgwFhFMU_m.md | 9 +++++++++ .../content/correlation@IeNMySumbyJdHhORMwmFr.md | 9 +++++++++ .../content/cran@IL0fFEs4CgK_eBft-SYAl.md | 7 +++++++ .../creating-variables@WBnsgWCiduh03uxGIN69c.md | 8 ++++++++ .../r-programming/content/csv@0cq7ItNudoIj48xoeA-q5.md | 9 +++++++++ .../content/dashboards@ofS4vY5u64GP4mI8gG_WD.md | 7 +++++++ .../content/data-cleaning@dLatbMJKRRZKjQbKW291i.md | 10 ++++++++++ .../content/data-frames@kIXf6FI-z6dgUdTGCjHkt.md | 8 ++++++++ .../content/data-manipulation@vP5oSvl3Z5inZEd3pmiMK.md | 3 +++ .../content/data-structures@JTDhohoC6Ew7uvPwuWr1v.md | 9 +++++++++ .../content/data-tables@SCW3xD7wCf3_ruTtxBkAX.md | 9 +++++++++ .../content/data-types@Iw6aTwdfOys4mzozQ_2Hz.md | 8 ++++++++ .../content/debugging@1shfOZKx1DfYAOtQb1CoK.md | 9 +++++++++ .../descriptive-statistics@epfsRqEvWDjgeSrku0emD.md | 9 +++++++++ .../distribution-analysis@52p2OUjL11aRM4PyHrCt_.md | 8 ++++++++ .../content/dplyr@2EXfdeT4WoEg5ZNr9eCtK.md | 10 ++++++++++ .../dropping-vs-imputing@xIS0cJ8ui0siBoZJr3-B_.md | 9 +++++++++ .../encoding-categories@1bHv3_acNts_BeOn3l6DF.md | 9 +++++++++ .../content/error-handling@bLZXJOMu6-NT2bqntOPfd.md | 9 +++++++++ .../content/excel@SOdl-8SpW1NsQoPtviJ8-.md | 9 +++++++++ .../exploratory-data-analysis@s2Wxtvjjz7bYK0sYeNhM4.md | 9 +++++++++ .../content/faceting--themes@P0NtCbzyGWz5B41feWsAy.md | 10 ++++++++++ .../content/factors@GeyQm1ONhk_eLXME7OS4M.md | 9 +++++++++ .../filter-query-arrange@6w_sSTw1R5MU2zj2RpO5Z.md | 9 +++++++++ .../content/forcats@WVgYRRNpsNXBnz7V9JX29.md | 9 +++++++++ .../forward--backward-fill@9mFT0z5yT446_-nGdG492.md | 8 ++++++++ .../content/functions@GrKgIYLzkSjtXdK5czN2x.md | 10 ++++++++++ .../geospatial-analysis@f2NsSRl_UukuqHggghWSw.md | 9 +++++++++ .../content/ggplot2@4FPrICo0eUAONFvObktqU.md | 9 +++++++++ .../content/ggplot2@vsqvOoq59aWgGexOSwlFG.md | 9 +++++++++ .../grammar-of-graphics@lEiv0DXeWD7w67GdZdy54.md | 9 +++++++++ .../group-by--summarize@fuAX0fNChwliVC_gJ7GV2.md | 9 +++++++++ .../hypothesis-testing@0xYk_O7rNoy7O116xVJvi.md | 8 ++++++++ .../content/igraph@WA-oBafJlw5OUphYrDm5u.md | 9 +++++++++ .../content/importing-data@KrX28-WcpfMiuvPBtHAXw.md | 9 +++++++++ .../installing-packages@_4619gNlgw_dDr_fVZ7Up.md | 10 ++++++++++ .../content/installing-r@8sLFw8BlwuE7tvMrDg9Pp.md | 10 ++++++++++ .../content/integer@K1whVa9-2i8QMqDo_tNlZ.md | 7 +++++++ .../content/interactive-plots@BMWA2CF4VkXEneErhJym-.md | 7 +++++++ .../content/introduction@QUzLkB8iKfUBtyAfKc8LC.md | 10 ++++++++++ .../r-programming/content/iqr@ucEFYVtXIvuYKjudK3pwB.md | 8 ++++++++ .../content/isnull-isna@bcODvfBqCUwLVXa8HKOFB.md | 9 +++++++++ .../content/joins@WdiPYzeuO8dKQsuP0xy4P.md | 9 +++++++++ .../content/json@R_8vJSp2Zp0CBWMeI2gsd.md | 9 +++++++++ .../content/leaflet@2uHsp_MQMF3WaOgcv0eDY.md | 9 +++++++++ .../content/linear-regression@PMGbX81TpodkDVz8o1z-T.md | 9 +++++++++ .../content/lists@lbYcKVjKw1mMU1DIGwA-s.md | 8 ++++++++ .../content/logical@jQTOs0UfekeCV6sPWVOr2.md | 7 +++++++ .../logistic-regression@nfuMTLrkI-XSNDseEOkXD.md | 9 +++++++++ .../content/loops@mCa0SGe_bHuU5P_FEsNYI.md | 9 +++++++++ .../content/lubridate@aD3VCC-ltZVisOgC--gAd.md | 10 ++++++++++ .../content/machine-learning@KWfYpJQwYeQzP4buGaA9y.md | 8 ++++++++ .../content/map-functions@e4mVEXKmmQbz051wE1HPZ.md | 9 +++++++++ .../content/matrices@29bAj72LyJQ62JbBl9vvG.md | 10 ++++++++++ .../content/mutate--transform@8vgTUVCNPb71lNHKycHce.md | 9 +++++++++ .../content/network-analysis@YBcSlradj7221NPcwWcFk.md | 10 ++++++++++ .../r-programming/content/nlp@BgwWbX4MgOPwMDPGX_HFs.md | 10 ++++++++++ .../content/numeric@dewpbYpun6Nho0ErI3rv-.md | 8 ++++++++ .../content/operators@3d540CG_Ye7vvIFQKmiPb.md | 8 ++++++++ .../overplotting-techniques@1b3AiO9i3pgkglwGeHiqd.md | 8 ++++++++ .../r-programming/content/pak@j1jq5_64lBuYQQjJWKIuI.md | 8 ++++++++ .../parallel-computing@ApowKoA3C1B8oUr4-sltZ.md | 9 +++++++++ .../content/parsing-dates@L7btVRwvkEVX0K8LxnbqJ.md | 10 ++++++++++ .../content/pipe@0K17RO_EoOaT820WypQ7H.md | 9 +++++++++ .../content/plotly@XPr7td4S8xpFxG5IkWvyz.md | 10 ++++++++++ .../content/positron@2m8uQRGaVZUd4mfm7bRou.md | 9 +++++++++ .../content/power-bi--tableau@EHVXO79NGpLC1i8x4Y7g1.md | 10 ++++++++++ .../probability-distributions@wSKItU0lct_9CCs4G4JO_.md | 10 ++++++++++ .../content/purrr@KXvrYvFvyAqFbJeS1KHRi.md | 10 ++++++++++ .../content/quanteda@gUpA_YtWlToGs-OJZZDpV.md | 9 +++++++++ .../content/quarto@SnLNFoVZhL6YuE9QOLpAl.md | 10 ++++++++++ .../content/r-dates--times@1X3RbJPY_GbIDarcO2UDL.md | 10 ++++++++++ .../content/r-markdown@PDZEvLgi94V5oLt3J5U9Z.md | 10 ++++++++++ .../content/r-vs-python@O3lbX70fDeKsv9fkJJtYv.md | 10 ++++++++++ .../content/readr@y0yMev6QSHjqd1YJ9Y05Z.md | 9 +++++++++ .../content/recursion@VdtQNeFL8vnaHHzW6CWds.md | 7 +++++++ .../regular-expressions@feXXBBD1J5TEllq2zbCUZ.md | 10 ++++++++++ .../relationship-analysis@hS12KA72tBNmVvS921-H-.md | 10 ++++++++++ .../content/renv@6dJaQRj2zMz00sfTiTdww.md | 9 +++++++++ .../content/reshaping@cRgcpjX7GlMB_l3ARU1z4.md | 9 +++++++++ .../content/rstatix@-9C077yNLTXLbEo0TW1zU.md | 7 +++++++ .../content/rstudio@c8uLNJMr6UZfvjFwFhxvd.md | 10 ++++++++++ .../content/sampling@U6vkyRtFatEi8oCm0zoIK.md | 9 +++++++++ .../content/scopes@JWRELdQozts-p0448ILYf.md | 9 +++++++++ .../content/setting-up@6br2AmC31MvGURDUgNtl2.md | 3 +++ .../r-programming/content/sf@XP4ngNk1Fqzb2nxtHs3Ot.md | 9 +++++++++ .../content/shiny@pC_AC-yhn9qqL2HbIl8Yx.md | 10 ++++++++++ .../content/sparklyr@XTXm8aIDbRkTXoAck_m3I.md | 9 +++++++++ .../statistical-analysis@MhJaZyfzuHGROihT8U7cY.md | 9 +++++++++ .../content/stats@xgI4j0gkNkd3pqGmWkpmF.md | 8 ++++++++ .../string-manipulation@swUTr8ZP72JnyP7UjfrHH.md | 8 ++++++++ .../content/stringr@P_u3uSVm63KsmQRWdvBmr.md | 9 +++++++++ .../content/strings-and-dates@akoMThJHZLC3vFk_zB-S1.md | 10 ++++++++++ .../strip-replace-split@S1EzGF-CLu7tWDb1V6RQc.md | 9 +++++++++ .../summary-statistics@AvzZ6SxNvGCuq9cX_O6op.md | 9 +++++++++ .../content/terra@UphqgVEpeVfM8mCVKpE-s.md | 9 +++++++++ .../content/text@1BCWaI0i01gzwo539I90D.md | 9 +++++++++ .../content/tibble@3PBGqxsWI3K6vpB9PtteC.md | 9 +++++++++ .../content/tibbles@4LSIcQnzj3V5mStHIYP-O.md | 9 +++++++++ .../content/tidygraph@_VJmd1wv2UJcLpQKnmjjK.md | 9 +++++++++ .../content/tidymodels@23bhr8zcXaTgjiAa7z_Pn.md | 9 +++++++++ .../content/tidyr@axtup-_HtUjM2Ft3J1Sxb.md | 8 ++++++++ .../content/tidytext@BM2ukkGQzjbWiPgExsN5z.md | 8 ++++++++ .../content/tidyverse@qjHtL_erZg2F9HuDOSaKl.md | 10 ++++++++++ .../time-series-analysis@6u9a625hfddNmkjU0uiSK.md | 9 +++++++++ .../content/tmap@z9ZgXE5cDkLOlJNi6JIMJ.md | 8 ++++++++ .../content/type-conversion@5pYoyNuVkRmQBqdrgcAcN.md | 8 ++++++++ .../content/vectors@C19rHMygP6Uc1NDgzt3DG.md | 9 +++++++++ .../content/visual-inspection@UIFNQ9g5fMK-KoZCrqv27.md | 9 +++++++++ .../content/vs-code@ObA_xZDY7PxU54NGBwyVI.md | 9 +++++++++ .../content/web-scraping@2Es328m-FGfn7UQteQjdS.md | 10 ++++++++++ .../content/window-functions@w78MVXiI2V3XXajsEEZyk.md | 8 ++++++++ .../working-with-data-tables@GChLgXktEvXnOs9fiv77x.md | 10 ++++++++++ .../your-first-r-script@NkRfIHsHQnOHJSTuFQ9aj.md | 8 ++++++++ .../content/z-score@2HIeG6ywOA9BkE9W3Gu9v.md | 9 +++++++++ 129 files changed, 1137 insertions(+) create mode 100644 roadmaps/r-programming/content/aesthetic-mappings@HDWIMwjBFh4vKw_BYo0bF.md create mode 100644 roadmaps/r-programming/content/apis@V_cnhs4qzp-SLnLaGXC1l.md create mode 100644 roadmaps/r-programming/content/apply-family@yqCapCzAFkWZvebvkuHNV.md create mode 100644 roadmaps/r-programming/content/arguments--defaults@qSJI_xsSN3wPY3ud0bZdm.md create mode 100644 roadmaps/r-programming/content/arrays@fy2pI0rjkw9d8THIHgDuN.md create mode 100644 roadmaps/r-programming/content/base-r-plotting@Ytwncvf4YOgLPNnczOpts.md create mode 100644 roadmaps/r-programming/content/basic-syntax@nDFlbYOe7U7mVJadKYy_W.md create mode 100644 roadmaps/r-programming/content/best-practices@OLOZSNHrOFD3claBXNKxP.md create mode 100644 roadmaps/r-programming/content/big-data-tools@GkxSrpOJx-SWvnDkTPcJt.md create mode 100644 roadmaps/r-programming/content/casting-types@XI8bvhQ3ugezTu60USUG2.md create mode 100644 roadmaps/r-programming/content/character@ghrVl-VfVDvpyBIl6N4xM.md create mode 100644 roadmaps/r-programming/content/comments@IahDxQfLvld-qCAeAuAo-.md create mode 100644 roadmaps/r-programming/content/common-plots@1uWW6PP2uWqKU4Ya5GzVO.md create mode 100644 roadmaps/r-programming/content/complex@SQh5uCFmpecdc-_PtyCEp.md create mode 100644 roadmaps/r-programming/content/conditional-statements@bN3DAVH9lstsgwFhFMU_m.md create mode 100644 roadmaps/r-programming/content/correlation@IeNMySumbyJdHhORMwmFr.md create mode 100644 roadmaps/r-programming/content/cran@IL0fFEs4CgK_eBft-SYAl.md create mode 100644 roadmaps/r-programming/content/creating-variables@WBnsgWCiduh03uxGIN69c.md create mode 100644 roadmaps/r-programming/content/csv@0cq7ItNudoIj48xoeA-q5.md create mode 100644 roadmaps/r-programming/content/dashboards@ofS4vY5u64GP4mI8gG_WD.md create mode 100644 roadmaps/r-programming/content/data-cleaning@dLatbMJKRRZKjQbKW291i.md create mode 100644 roadmaps/r-programming/content/data-frames@kIXf6FI-z6dgUdTGCjHkt.md create mode 100644 roadmaps/r-programming/content/data-manipulation@vP5oSvl3Z5inZEd3pmiMK.md create mode 100644 roadmaps/r-programming/content/data-structures@JTDhohoC6Ew7uvPwuWr1v.md create mode 100644 roadmaps/r-programming/content/data-tables@SCW3xD7wCf3_ruTtxBkAX.md create mode 100644 roadmaps/r-programming/content/data-types@Iw6aTwdfOys4mzozQ_2Hz.md create mode 100644 roadmaps/r-programming/content/debugging@1shfOZKx1DfYAOtQb1CoK.md create mode 100644 roadmaps/r-programming/content/descriptive-statistics@epfsRqEvWDjgeSrku0emD.md create mode 100644 roadmaps/r-programming/content/distribution-analysis@52p2OUjL11aRM4PyHrCt_.md create mode 100644 roadmaps/r-programming/content/dplyr@2EXfdeT4WoEg5ZNr9eCtK.md create mode 100644 roadmaps/r-programming/content/dropping-vs-imputing@xIS0cJ8ui0siBoZJr3-B_.md create mode 100644 roadmaps/r-programming/content/encoding-categories@1bHv3_acNts_BeOn3l6DF.md create mode 100644 roadmaps/r-programming/content/error-handling@bLZXJOMu6-NT2bqntOPfd.md create mode 100644 roadmaps/r-programming/content/excel@SOdl-8SpW1NsQoPtviJ8-.md create mode 100644 roadmaps/r-programming/content/exploratory-data-analysis@s2Wxtvjjz7bYK0sYeNhM4.md create mode 100644 roadmaps/r-programming/content/faceting--themes@P0NtCbzyGWz5B41feWsAy.md create mode 100644 roadmaps/r-programming/content/factors@GeyQm1ONhk_eLXME7OS4M.md create mode 100644 roadmaps/r-programming/content/filter-query-arrange@6w_sSTw1R5MU2zj2RpO5Z.md create mode 100644 roadmaps/r-programming/content/forcats@WVgYRRNpsNXBnz7V9JX29.md create mode 100644 roadmaps/r-programming/content/forward--backward-fill@9mFT0z5yT446_-nGdG492.md create mode 100644 roadmaps/r-programming/content/functions@GrKgIYLzkSjtXdK5czN2x.md create mode 100644 roadmaps/r-programming/content/geospatial-analysis@f2NsSRl_UukuqHggghWSw.md create mode 100644 roadmaps/r-programming/content/ggplot2@4FPrICo0eUAONFvObktqU.md create mode 100644 roadmaps/r-programming/content/ggplot2@vsqvOoq59aWgGexOSwlFG.md create mode 100644 roadmaps/r-programming/content/grammar-of-graphics@lEiv0DXeWD7w67GdZdy54.md create mode 100644 roadmaps/r-programming/content/group-by--summarize@fuAX0fNChwliVC_gJ7GV2.md create mode 100644 roadmaps/r-programming/content/hypothesis-testing@0xYk_O7rNoy7O116xVJvi.md create mode 100644 roadmaps/r-programming/content/igraph@WA-oBafJlw5OUphYrDm5u.md create mode 100644 roadmaps/r-programming/content/importing-data@KrX28-WcpfMiuvPBtHAXw.md create mode 100644 roadmaps/r-programming/content/installing-packages@_4619gNlgw_dDr_fVZ7Up.md create mode 100644 roadmaps/r-programming/content/installing-r@8sLFw8BlwuE7tvMrDg9Pp.md create mode 100644 roadmaps/r-programming/content/integer@K1whVa9-2i8QMqDo_tNlZ.md create mode 100644 roadmaps/r-programming/content/interactive-plots@BMWA2CF4VkXEneErhJym-.md create mode 100644 roadmaps/r-programming/content/introduction@QUzLkB8iKfUBtyAfKc8LC.md create mode 100644 roadmaps/r-programming/content/iqr@ucEFYVtXIvuYKjudK3pwB.md create mode 100644 roadmaps/r-programming/content/isnull-isna@bcODvfBqCUwLVXa8HKOFB.md create mode 100644 roadmaps/r-programming/content/joins@WdiPYzeuO8dKQsuP0xy4P.md create mode 100644 roadmaps/r-programming/content/json@R_8vJSp2Zp0CBWMeI2gsd.md create mode 100644 roadmaps/r-programming/content/leaflet@2uHsp_MQMF3WaOgcv0eDY.md create mode 100644 roadmaps/r-programming/content/linear-regression@PMGbX81TpodkDVz8o1z-T.md create mode 100644 roadmaps/r-programming/content/lists@lbYcKVjKw1mMU1DIGwA-s.md create mode 100644 roadmaps/r-programming/content/logical@jQTOs0UfekeCV6sPWVOr2.md create mode 100644 roadmaps/r-programming/content/logistic-regression@nfuMTLrkI-XSNDseEOkXD.md create mode 100644 roadmaps/r-programming/content/loops@mCa0SGe_bHuU5P_FEsNYI.md create mode 100644 roadmaps/r-programming/content/lubridate@aD3VCC-ltZVisOgC--gAd.md create mode 100644 roadmaps/r-programming/content/machine-learning@KWfYpJQwYeQzP4buGaA9y.md create mode 100644 roadmaps/r-programming/content/map-functions@e4mVEXKmmQbz051wE1HPZ.md create mode 100644 roadmaps/r-programming/content/matrices@29bAj72LyJQ62JbBl9vvG.md create mode 100644 roadmaps/r-programming/content/mutate--transform@8vgTUVCNPb71lNHKycHce.md create mode 100644 roadmaps/r-programming/content/network-analysis@YBcSlradj7221NPcwWcFk.md create mode 100644 roadmaps/r-programming/content/nlp@BgwWbX4MgOPwMDPGX_HFs.md create mode 100644 roadmaps/r-programming/content/numeric@dewpbYpun6Nho0ErI3rv-.md create mode 100644 roadmaps/r-programming/content/operators@3d540CG_Ye7vvIFQKmiPb.md create mode 100644 roadmaps/r-programming/content/overplotting-techniques@1b3AiO9i3pgkglwGeHiqd.md create mode 100644 roadmaps/r-programming/content/pak@j1jq5_64lBuYQQjJWKIuI.md create mode 100644 roadmaps/r-programming/content/parallel-computing@ApowKoA3C1B8oUr4-sltZ.md create mode 100644 roadmaps/r-programming/content/parsing-dates@L7btVRwvkEVX0K8LxnbqJ.md create mode 100644 roadmaps/r-programming/content/pipe@0K17RO_EoOaT820WypQ7H.md create mode 100644 roadmaps/r-programming/content/plotly@XPr7td4S8xpFxG5IkWvyz.md create mode 100644 roadmaps/r-programming/content/positron@2m8uQRGaVZUd4mfm7bRou.md create mode 100644 roadmaps/r-programming/content/power-bi--tableau@EHVXO79NGpLC1i8x4Y7g1.md create mode 100644 roadmaps/r-programming/content/probability-distributions@wSKItU0lct_9CCs4G4JO_.md create mode 100644 roadmaps/r-programming/content/purrr@KXvrYvFvyAqFbJeS1KHRi.md create mode 100644 roadmaps/r-programming/content/quanteda@gUpA_YtWlToGs-OJZZDpV.md create mode 100644 roadmaps/r-programming/content/quarto@SnLNFoVZhL6YuE9QOLpAl.md create mode 100644 roadmaps/r-programming/content/r-dates--times@1X3RbJPY_GbIDarcO2UDL.md create mode 100644 roadmaps/r-programming/content/r-markdown@PDZEvLgi94V5oLt3J5U9Z.md create mode 100644 roadmaps/r-programming/content/r-vs-python@O3lbX70fDeKsv9fkJJtYv.md create mode 100644 roadmaps/r-programming/content/readr@y0yMev6QSHjqd1YJ9Y05Z.md create mode 100644 roadmaps/r-programming/content/recursion@VdtQNeFL8vnaHHzW6CWds.md create mode 100644 roadmaps/r-programming/content/regular-expressions@feXXBBD1J5TEllq2zbCUZ.md create mode 100644 roadmaps/r-programming/content/relationship-analysis@hS12KA72tBNmVvS921-H-.md create mode 100644 roadmaps/r-programming/content/renv@6dJaQRj2zMz00sfTiTdww.md create mode 100644 roadmaps/r-programming/content/reshaping@cRgcpjX7GlMB_l3ARU1z4.md create mode 100644 roadmaps/r-programming/content/rstatix@-9C077yNLTXLbEo0TW1zU.md create mode 100644 roadmaps/r-programming/content/rstudio@c8uLNJMr6UZfvjFwFhxvd.md create mode 100644 roadmaps/r-programming/content/sampling@U6vkyRtFatEi8oCm0zoIK.md create mode 100644 roadmaps/r-programming/content/scopes@JWRELdQozts-p0448ILYf.md create mode 100644 roadmaps/r-programming/content/setting-up@6br2AmC31MvGURDUgNtl2.md create mode 100644 roadmaps/r-programming/content/sf@XP4ngNk1Fqzb2nxtHs3Ot.md create mode 100644 roadmaps/r-programming/content/shiny@pC_AC-yhn9qqL2HbIl8Yx.md create mode 100644 roadmaps/r-programming/content/sparklyr@XTXm8aIDbRkTXoAck_m3I.md create mode 100644 roadmaps/r-programming/content/statistical-analysis@MhJaZyfzuHGROihT8U7cY.md create mode 100644 roadmaps/r-programming/content/stats@xgI4j0gkNkd3pqGmWkpmF.md create mode 100644 roadmaps/r-programming/content/string-manipulation@swUTr8ZP72JnyP7UjfrHH.md create mode 100644 roadmaps/r-programming/content/stringr@P_u3uSVm63KsmQRWdvBmr.md create mode 100644 roadmaps/r-programming/content/strings-and-dates@akoMThJHZLC3vFk_zB-S1.md create mode 100644 roadmaps/r-programming/content/strip-replace-split@S1EzGF-CLu7tWDb1V6RQc.md create mode 100644 roadmaps/r-programming/content/summary-statistics@AvzZ6SxNvGCuq9cX_O6op.md create mode 100644 roadmaps/r-programming/content/terra@UphqgVEpeVfM8mCVKpE-s.md create mode 100644 roadmaps/r-programming/content/text@1BCWaI0i01gzwo539I90D.md create mode 100644 roadmaps/r-programming/content/tibble@3PBGqxsWI3K6vpB9PtteC.md create mode 100644 roadmaps/r-programming/content/tibbles@4LSIcQnzj3V5mStHIYP-O.md create mode 100644 roadmaps/r-programming/content/tidygraph@_VJmd1wv2UJcLpQKnmjjK.md create mode 100644 roadmaps/r-programming/content/tidymodels@23bhr8zcXaTgjiAa7z_Pn.md create mode 100644 roadmaps/r-programming/content/tidyr@axtup-_HtUjM2Ft3J1Sxb.md create mode 100644 roadmaps/r-programming/content/tidytext@BM2ukkGQzjbWiPgExsN5z.md create mode 100644 roadmaps/r-programming/content/tidyverse@qjHtL_erZg2F9HuDOSaKl.md create mode 100644 roadmaps/r-programming/content/time-series-analysis@6u9a625hfddNmkjU0uiSK.md create mode 100644 roadmaps/r-programming/content/tmap@z9ZgXE5cDkLOlJNi6JIMJ.md create mode 100644 roadmaps/r-programming/content/type-conversion@5pYoyNuVkRmQBqdrgcAcN.md create mode 100644 roadmaps/r-programming/content/vectors@C19rHMygP6Uc1NDgzt3DG.md create mode 100644 roadmaps/r-programming/content/visual-inspection@UIFNQ9g5fMK-KoZCrqv27.md create mode 100644 roadmaps/r-programming/content/vs-code@ObA_xZDY7PxU54NGBwyVI.md create mode 100644 roadmaps/r-programming/content/web-scraping@2Es328m-FGfn7UQteQjdS.md create mode 100644 roadmaps/r-programming/content/window-functions@w78MVXiI2V3XXajsEEZyk.md create mode 100644 roadmaps/r-programming/content/working-with-data-tables@GChLgXktEvXnOs9fiv77x.md create mode 100644 roadmaps/r-programming/content/your-first-r-script@NkRfIHsHQnOHJSTuFQ9aj.md create mode 100644 roadmaps/r-programming/content/z-score@2HIeG6ywOA9BkE9W3Gu9v.md diff --git a/roadmaps/r-programming/content/aesthetic-mappings@HDWIMwjBFh4vKw_BYo0bF.md b/roadmaps/r-programming/content/aesthetic-mappings@HDWIMwjBFh4vKw_BYo0bF.md new file mode 100644 index 000000000..b8188870a --- /dev/null +++ b/roadmaps/r-programming/content/aesthetic-mappings@HDWIMwjBFh4vKw_BYo0bF.md @@ -0,0 +1,9 @@ +# Aesthetic Mappings + +Aesthetic mappings connect columns in your data to visual properties of a plot, like position, color, size, or shape. Writing `aes(x = year, y = revenue, color = region)` tells ggplot2 to plot year against revenue and color each point by region. Choosing the right aesthetics for the right variables makes the difference between a clear plot and a confusing one. + +Visit the following resources to learn more: + +- [@article@Construct aesthetic mappings](https://ggplot2.tidyverse.org/reference/aes.html) +- [@article@Aesthetic Mappings](https://data-vis-using-r.info/10_aesthetics/aesthetics.html) +- [@video@Data Visualization with R: Aesthetic Mappings](https://www.youtube.com/watch?v=Kz-NDwt1plU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/apis@V_cnhs4qzp-SLnLaGXC1l.md b/roadmaps/r-programming/content/apis@V_cnhs4qzp-SLnLaGXC1l.md new file mode 100644 index 000000000..27696c4f2 --- /dev/null +++ b/roadmaps/r-programming/content/apis@V_cnhs4qzp-SLnLaGXC1l.md @@ -0,0 +1,9 @@ +# APIs + +Web APIs let you request data over the internet from another service, typically returning it in JSON format. Fetching data from an API in R usually means making an HTTP request with a package like httr, then parsing the response. This combination of requesting and parsing is essential for working with any modern data source that exposes an API rather than a static file. + +Visit the following resources to learn more: + +- [@article@R API Tutorial: Getting Started with APIs in R](https://www.dataquest.io/blog/r-api-tutorial/) +- [@article@Web APIs in R](https://www.gastonsanchez.com/R-web-technologies/4-01-apis-intro.html) +- [@video@Access & Collect Data with APIs in R](https://www.youtube.com/watch?v=7XDDI0BnDAw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/apply-family@yqCapCzAFkWZvebvkuHNV.md b/roadmaps/r-programming/content/apply-family@yqCapCzAFkWZvebvkuHNV.md new file mode 100644 index 000000000..c3ce130cc --- /dev/null +++ b/roadmaps/r-programming/content/apply-family@yqCapCzAFkWZvebvkuHNV.md @@ -0,0 +1,9 @@ +# Apply Family + +The apply family is a set of base R functions that apply another function to every element of a vector, list, or data structure, replacing many uses of explicit loops. `lapply()` always returns a list, `sapply()` tries to simplify the result into a vector or matrix, and `vapply()` works like `sapply()` but requires specifying the expected output type in advance. These functions predate the tidyverse's purrr package, which offers similar functionality with more consistent behavior. + +Visit the following resources to learn more: + +- [@article@apply family in r apply(), lapply(), sapply(), mapply() and tapply()](https://www.r-bloggers.com/2021/05/apply-family-in-r-apply-lapply-sapply-mapply-and-tapply/) +- [@article@apply, lapply, sapply in R: The apply Family Explained](https://coddy.tech/docs/r/apply-family) +- [@video@Apply Functions in R](https://www.youtube.com/watch?v=i8xYAX5dH-o) \ No newline at end of file diff --git a/roadmaps/r-programming/content/arguments--defaults@qSJI_xsSN3wPY3ud0bZdm.md b/roadmaps/r-programming/content/arguments--defaults@qSJI_xsSN3wPY3ud0bZdm.md new file mode 100644 index 000000000..70cd043f6 --- /dev/null +++ b/roadmaps/r-programming/content/arguments--defaults@qSJI_xsSN3wPY3ud0bZdm.md @@ -0,0 +1,8 @@ +# Arguments & Defaults + +Function arguments are the inputs a function accepts, and default values let you specify what an argument should be if the caller doesn't provide one. Writing `function(x, na.rm = FALSE)` means `na.rm` defaults to `FALSE` unless the caller overrides it. R also supports `...` to let a function accept a variable number of additional arguments, often passed through to another function inside. + +Visit the following resources to learn more: + +- [@article@R Functions](https://adv-r.hadley.nz/functions.html) +- [@video@Create functions in R](https://www.youtube.com/watch?v=dCyj1MCOMrw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/arrays@fy2pI0rjkw9d8THIHgDuN.md b/roadmaps/r-programming/content/arrays@fy2pI0rjkw9d8THIHgDuN.md new file mode 100644 index 000000000..33237e539 --- /dev/null +++ b/roadmaps/r-programming/content/arrays@fy2pI0rjkw9d8THIHgDuN.md @@ -0,0 +1,8 @@ +# Arrays + +An array generalizes a matrix to more than two dimensions, storing values of a single type across any number of dimensions you specify. Arrays are less common in everyday data analysis than vectors or data frames, but they appear in specialized numerical and scientific computing contexts. R indexes into them using the same bracket notation used for vectors and matrices, just with an extra dimension for each additional axis. + +Visit the following resources to learn more: + +- [@article@R Arrays](https://www.w3schools.com/r/r_arrays.asp) +- [@video@R Basics 11 - Arrays](https://www.youtube.com/watch?v=oYhP2WZYpBY) \ No newline at end of file diff --git a/roadmaps/r-programming/content/base-r-plotting@Ytwncvf4YOgLPNnczOpts.md b/roadmaps/r-programming/content/base-r-plotting@Ytwncvf4YOgLPNnczOpts.md new file mode 100644 index 000000000..68a79dfb1 --- /dev/null +++ b/roadmaps/r-programming/content/base-r-plotting@Ytwncvf4YOgLPNnczOpts.md @@ -0,0 +1,9 @@ +# Base R Plotting + +Base R includes plotting functions like `plot()`, `hist()`, and `boxplot()` that don't require any additional package. They're quick to use for a fast look at data and require no setup. Base R plots are generally less polished and more manual to customize than ggplot2, since you build them up layer by layer using separate function calls. + +Visit the following resources to learn more: + +- [@article@Simple base R plots](https://intro2r.com/simple-base-r-plots.html) +- [@article@R Plotting](https://www.w3schools.com/r/r_graph_plot.asp) +- [@video@Introduction to R: Plotting in Base R](https://www.youtube.com/watch?v=8HD4riFaqYs) \ No newline at end of file diff --git a/roadmaps/r-programming/content/basic-syntax@nDFlbYOe7U7mVJadKYy_W.md b/roadmaps/r-programming/content/basic-syntax@nDFlbYOe7U7mVJadKYy_W.md new file mode 100644 index 000000000..5b3454908 --- /dev/null +++ b/roadmaps/r-programming/content/basic-syntax@nDFlbYOe7U7mVJadKYy_W.md @@ -0,0 +1,10 @@ +# Basic Syntax + +Basic R syntax is the small set of building blocks used to write any R code: variables, operators, comments, and simple control structures. Getting comfortable with these is necessary before anything more complex makes sense. + +Visit the following resources to learn more: + +- [@book@R for Data Science (2e)](https://r4ds.hadley.nz/) +- [@video@Harvard CS50’s Intro to R Programming](https://www.youtube.com/watch?v=g_3IKHG-rfA) +- [@video@Learn R in 39 minutes](https://www.youtube.com/watch?v=yZ0bV2Afkjc) +- [@video@R programming in one hour - a crash course for beginners](https://www.youtube.com/watch?v=eR-XRSKsuR4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/best-practices@OLOZSNHrOFD3claBXNKxP.md b/roadmaps/r-programming/content/best-practices@OLOZSNHrOFD3claBXNKxP.md new file mode 100644 index 000000000..f1938160e --- /dev/null +++ b/roadmaps/r-programming/content/best-practices@OLOZSNHrOFD3claBXNKxP.md @@ -0,0 +1,9 @@ +# Best Practices + +Good data visualization practice means choosing chart types and design choices that communicate data accurately rather than misleadingly. Common anti-patterns include truncated axes that exaggerate differences and color choices that aren't accessible to colorblind viewers. A technically correct chart can still mislead its audience if these principles are ignored. + +Visit the following resources to learn more: + +- [@article@ggplot tips](https://www.epirhandbook.com/en/new_pages/ggplot_tips.html) +- [@article@Simple Tricks to Improve ggplot Figures](https://medium.com/@sophiekearney/simple-tricks-to-improve-ggplot-figures-010202415824) +- [@video@Good Data Visualizations Don't Take Much Time | A ggplot2 Tutorial](https://www.youtube.com/watch?v=U8CrTL2kIDA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/big-data-tools@GkxSrpOJx-SWvnDkTPcJt.md b/roadmaps/r-programming/content/big-data-tools@GkxSrpOJx-SWvnDkTPcJt.md new file mode 100644 index 000000000..6176c0dca --- /dev/null +++ b/roadmaps/r-programming/content/big-data-tools@GkxSrpOJx-SWvnDkTPcJt.md @@ -0,0 +1,9 @@ +# Big Data Tools + +Big data tools handle datasets too large or too slow to work with comfortably using standard R data manipulation. They include techniques for parallelizing computation and connecting to distributed processing systems. + +Visit the following resources to learn more: + +- [@article@What is big data?](https://www.okanbulut.com/bigdata/intro.html) +- [@article@Super Saiyan Data Skills: Mastering Big Data with R](https://www.r-bloggers.com/2024/04/super-saiyan-data-skills-mastering-big-data-with-r/) +- [@article@Efficient Techniques for Large Data Handling in R: A Comprehensive Guide](https://medium.com/@melsiddieg/efficient-techniques-for-large-data-handling-in-r-a-comprehensive-guide-8a3173cc6b1c) \ No newline at end of file diff --git a/roadmaps/r-programming/content/casting-types@XI8bvhQ3ugezTu60USUG2.md b/roadmaps/r-programming/content/casting-types@XI8bvhQ3ugezTu60USUG2.md new file mode 100644 index 000000000..19dac2e1c --- /dev/null +++ b/roadmaps/r-programming/content/casting-types@XI8bvhQ3ugezTu60USUG2.md @@ -0,0 +1,10 @@ +# Casting Types + +Casting converts a column to the correct type, such as turning character `"42"` into the numeric value `42`. Data often arrives in the wrong type for analysis, especially numbers or dates stored as plain text. Getting the types right early avoids confusing errors later when a function expects a number but receives text instead. + +Visit the following resources to learn more: + +- [@article@Changing Data Type of variables in R](https://thedatahall.com/changing-data-type-in-r/) +- [@article@typecast: Atomic and List Type Casting With Names and Dimensions Preserved](https://www.rdocumentation.org/packages/broadcast/versions/0.1.8/topics/typecast) +- [@video@Converting Data types in R || R programming tutorials](https://www.youtube.com/watch?v=jcHHmbWcngc) +- [@video@Data types in R programming](https://www.youtube.com/watch?v=VtUVQWl0aRA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/character@ghrVl-VfVDvpyBIl6N4xM.md b/roadmaps/r-programming/content/character@ghrVl-VfVDvpyBIl6N4xM.md new file mode 100644 index 000000000..c6aad3164 --- /dev/null +++ b/roadmaps/r-programming/content/character@ghrVl-VfVDvpyBIl6N4xM.md @@ -0,0 +1,8 @@ +# Character + +Character is R's type for text, written inside single or double quotes, like `"hello"`. R provides many built-in and package functions for searching, splitting, and reformatting text stored this way. Character data shows up constantly in real datasets: names, categories, free-text responses, file paths. + +Visit the following resources to learn more: + +- [@article@Character](https://www.r-tutor.com/r-introduction/basic-data-types/character) +- [@article@R Strings](https://www.w3schools.com/r/r_strings.asp) \ No newline at end of file diff --git a/roadmaps/r-programming/content/comments@IahDxQfLvld-qCAeAuAo-.md b/roadmaps/r-programming/content/comments@IahDxQfLvld-qCAeAuAo-.md new file mode 100644 index 000000000..dea4eeb59 --- /dev/null +++ b/roadmaps/r-programming/content/comments@IahDxQfLvld-qCAeAuAo-.md @@ -0,0 +1,8 @@ +# Comments + +Comments start with `#` and are ignored when R runs the code, letting you leave notes explaining what a piece of code does or why. They don't affect how a script executes, but they make code easier to understand later, whether for someone else or for yourself after time has passed. Good commenting habits pay off especially once scripts grow beyond a few lines. + +Visit the following resources to learn more: + +- [@article@R Comments](https://www.w3schools.com/r/r_comments.asp) +- [@video@how to add comments in your R codes](https://www.youtube.com/watch?v=1ELURZg8IIY) \ No newline at end of file diff --git a/roadmaps/r-programming/content/common-plots@1uWW6PP2uWqKU4Ya5GzVO.md b/roadmaps/r-programming/content/common-plots@1uWW6PP2uWqKU4Ya5GzVO.md new file mode 100644 index 000000000..9d8733607 --- /dev/null +++ b/roadmaps/r-programming/content/common-plots@1uWW6PP2uWqKU4Ya5GzVO.md @@ -0,0 +1,8 @@ +# Common Plots + +Common plot types include line plots for trends over time, bar plots for comparing quantities across categories, histograms for showing the distribution of a single numeric variable, and boxplots for summarizing spread and outliers. Each type suits a different kind of question about the data. Learning when to reach for which one is as important as knowing the syntax to produce it. + +Visit the following resources to learn more: + +- [@article@Top 50 ggplot2 Visualizations - The Master List (With Full R Code)](https://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html) +- [@article@ggplot2 R Galery](https://r-graph-gallery.com/ggplot2-package.html) \ No newline at end of file diff --git a/roadmaps/r-programming/content/complex@SQh5uCFmpecdc-_PtyCEp.md b/roadmaps/r-programming/content/complex@SQh5uCFmpecdc-_PtyCEp.md new file mode 100644 index 000000000..b9ee0b360 --- /dev/null +++ b/roadmaps/r-programming/content/complex@SQh5uCFmpecdc-_PtyCEp.md @@ -0,0 +1,7 @@ +# Complex + +Complex numbers combine a real and imaginary part, written in R as something like `3+2i`. They come up in specialized mathematical work, such as signal processing, but most day-to-day data analysis never touches them directly. R supports them fully as a native type, including arithmetic and functions like `Mod()` and `Conj()`. + +Visit the following resources to learn more: + +- [@article@Complex Types](https://www.r-tutor.com/r-introduction/basic-data-types/complex) \ No newline at end of file diff --git a/roadmaps/r-programming/content/conditional-statements@bN3DAVH9lstsgwFhFMU_m.md b/roadmaps/r-programming/content/conditional-statements@bN3DAVH9lstsgwFhFMU_m.md new file mode 100644 index 000000000..b7aeaa4fe --- /dev/null +++ b/roadmaps/r-programming/content/conditional-statements@bN3DAVH9lstsgwFhFMU_m.md @@ -0,0 +1,9 @@ +# Conditional Statements + +Conditional statements let code branch based on whether something is true or false, using `if`, `else if`, and `else`. R evaluates the condition, runs the matching block, and skips the rest. R also offers `ifelse()` and dplyr's `case_when()` for applying conditional logic across an entire column of data at once. + +Visit the following resources to learn more: + +- [@article@Conditional statements](https://intro2r.com/conditional-statements.html) +- [@article@R If ... Else](https://www.w3schools.com/r/r_if_else.asp) +- [@video@Conditional Statements in R (If, Else If, and Else)](https://www.youtube.com/watch?v=YT6OXoTIjOk) \ No newline at end of file diff --git a/roadmaps/r-programming/content/correlation@IeNMySumbyJdHhORMwmFr.md b/roadmaps/r-programming/content/correlation@IeNMySumbyJdHhORMwmFr.md new file mode 100644 index 000000000..6cad14b91 --- /dev/null +++ b/roadmaps/r-programming/content/correlation@IeNMySumbyJdHhORMwmFr.md @@ -0,0 +1,9 @@ +# Correlation + +Correlation measures the strength and direction of a linear relationship between two numeric variables, expressed as a single number between negative one and positive one. A value near positive one means the variables tend to increase together, and near zero means little linear relationship exists. Correlation does not imply causation, and it can miss real relationships that aren't linear in shape. + +Visit the following resources to learn more: + +- [@article@Correlation and Regression Analysis in R](https://bookdown.org/siju_swamy/Stat_Lab/correlation-and-regression-analysis-in-r.html) +- [@article@Correlation coefficient and correlation test in R](https://statsandr.com/blog/correlation-coefficient-and-correlation-test-in-r/) +- [@video@Correlation in R](https://www.youtube.com/watch?v=2yLpEeO0QNc) \ No newline at end of file diff --git a/roadmaps/r-programming/content/cran@IL0fFEs4CgK_eBft-SYAl.md b/roadmaps/r-programming/content/cran@IL0fFEs4CgK_eBft-SYAl.md new file mode 100644 index 000000000..98cf6af73 --- /dev/null +++ b/roadmaps/r-programming/content/cran@IL0fFEs4CgK_eBft-SYAl.md @@ -0,0 +1,7 @@ +# CRAN + +CRAN, the Comprehensive R Archive Network, is R's official package repository, hosting tens of thousands of vetted packages. Packages published on CRAN go through basic automated checks before release, giving them a baseline level of reliability. It's the default source `install.packages()` pulls from, and most tutorials assume packages come from here unless stated otherwise. + +Visit the following resources to learn more: + +- [@official@CRAN](https://cran.r-project.org/) \ No newline at end of file diff --git a/roadmaps/r-programming/content/creating-variables@WBnsgWCiduh03uxGIN69c.md b/roadmaps/r-programming/content/creating-variables@WBnsgWCiduh03uxGIN69c.md new file mode 100644 index 000000000..109a2584a --- /dev/null +++ b/roadmaps/r-programming/content/creating-variables@WBnsgWCiduh03uxGIN69c.md @@ -0,0 +1,8 @@ +# Creating Variables + +Creating a variable stores a value under a name so you can reuse it later, most commonly using the `<-` assignment operator, though `=` also works in most contexts. Once assigned, a variable holds its value until you reassign or remove it. This is one of the very first things you do in any R script. + +Visit the following resources to learn more: + +- [@article@R Variables](https://www.w3schools.com/r/r_variables.asp) +- [@video@Creating Variables in R](https://www.youtube.com/watch?v=FmK79_MgO-8) \ No newline at end of file diff --git a/roadmaps/r-programming/content/csv@0cq7ItNudoIj48xoeA-q5.md b/roadmaps/r-programming/content/csv@0cq7ItNudoIj48xoeA-q5.md new file mode 100644 index 000000000..2ffb25a3f --- /dev/null +++ b/roadmaps/r-programming/content/csv@0cq7ItNudoIj48xoeA-q5.md @@ -0,0 +1,9 @@ +# CSV + +CSV files store tabular data as plain text with values separated by commas, making them one of the most universal formats for exchanging data between tools. Base R can read them with `read.csv()`, though readr's `read_csv()` is faster and handles more edge cases well, such as inconsistent column types or unusual encodings. Reading them correctly means paying attention to details like headers and how missing values are represented. + +Visit the following resources to learn more: + +- [@article@Reading a CSV file in R](https://www.sfu.ca/~mjbrydon/tutorials/BAinR/data.html#reading-a-csv-file) +- [@article@How to Import CSV Files into R?](https://www.r-bloggers.com/2022/01/how-to-import-csv-files-into-r/) +- [@video@Importing a .csv file to R Studio using the read.csv function](https://www.youtube.com/watch?v=oRaPjJefoTo) \ No newline at end of file diff --git a/roadmaps/r-programming/content/dashboards@ofS4vY5u64GP4mI8gG_WD.md b/roadmaps/r-programming/content/dashboards@ofS4vY5u64GP4mI8gG_WD.md new file mode 100644 index 000000000..691daea8a --- /dev/null +++ b/roadmaps/r-programming/content/dashboards@ofS4vY5u64GP4mI8gG_WD.md @@ -0,0 +1,7 @@ +# Dashboards + +Dashboards present data and analysis interactively, typically through a web page with charts, filters, and controls a viewer can adjust themselves. They're built either through general business intelligence tools or R-native frameworks, depending on the audience and existing tooling in an organization. This section covers both routes for building them out of R work. + +Visit the following resources to learn more: + +- [@article@Dashboards con R Markdown](https://epirhandbook.com/es/new_pages/flexdashboard.es.html) \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-cleaning@dLatbMJKRRZKjQbKW291i.md b/roadmaps/r-programming/content/data-cleaning@dLatbMJKRRZKjQbKW291i.md new file mode 100644 index 000000000..e1e3077e9 --- /dev/null +++ b/roadmaps/r-programming/content/data-cleaning@dLatbMJKRRZKjQbKW291i.md @@ -0,0 +1,10 @@ +# Data Cleaning + +Data cleaning means fixing messy, inconsistent, or incomplete data before it's ready for analysis. It includes converting types, cleaning text, handling missing values, and detecting outliers. + +Visit the following resources to learn more: + +- [@article@Cleaning data and core functions](https://epirhandbook.com/en/new_pages/cleaning.html) +- [@article@Learn R: Data Cleaning Cheatsheet](https://www.codecademy.com/learn/learn-r/modules/learn-r-data-cleaning/cheatsheet) +- [@article@Best Practices for Data Cleaning and Preprocessing](https://www.r-bloggers.com/2023/08/best-practices-for-data-cleaning-and-preprocessing/) +- [@video@Data Cleaning With R](https://www.youtube.com/playlist?list=PLBnFxG6owe1HeSD3ICbWuciHXw6VkkpC4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-frames@kIXf6FI-z6dgUdTGCjHkt.md b/roadmaps/r-programming/content/data-frames@kIXf6FI-z6dgUdTGCjHkt.md new file mode 100644 index 000000000..5149709aa --- /dev/null +++ b/roadmaps/r-programming/content/data-frames@kIXf6FI-z6dgUdTGCjHkt.md @@ -0,0 +1,8 @@ +# Data Frames + +A data frame is R's standard structure for tabular data, organized into rows and columns where each column can hold a different type but all values within a column share the same type. It's the structure you'll use for almost any real dataset loaded into R, whether from a CSV file, a database, or an API. Nearly every data manipulation package in R, including dplyr, is built around working with data frames or their variants. + +Visit the following resources to learn more: + +- [@article@R Data Frames](https://www.w3schools.com/r/r_data_frames.asp) +- [@video@R Tutorial - Using the Data Frame in R](https://www.youtube.com/watch?v=9f2g7RN5N0I) \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-manipulation@vP5oSvl3Z5inZEd3pmiMK.md b/roadmaps/r-programming/content/data-manipulation@vP5oSvl3Z5inZEd3pmiMK.md new file mode 100644 index 000000000..1d067bb9e --- /dev/null +++ b/roadmaps/r-programming/content/data-manipulation@vP5oSvl3Z5inZEd3pmiMK.md @@ -0,0 +1,3 @@ +# Data Manipulation + +Manipulating data means filtering, grouping, joining, and reshaping it once it's already loaded into R. Most of the real work in an analysis happens here, between importing raw data and producing final results. \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-structures@JTDhohoC6Ew7uvPwuWr1v.md b/roadmaps/r-programming/content/data-structures@JTDhohoC6Ew7uvPwuWr1v.md new file mode 100644 index 000000000..5c6f5b5e1 --- /dev/null +++ b/roadmaps/r-programming/content/data-structures@JTDhohoC6Ew7uvPwuWr1v.md @@ -0,0 +1,9 @@ +# Data Structures + +R holds data in a small set of structures: vectors, lists, and various tabular formats like data frames. Nearly everything done in R involves working with one of these. + +Visit the following resources to learn more: + +- [@article@R Data Structures](https://www.w3schools.com/r/r_data_structures.asp) +- [@article@Basic Data Structures in R: Vectors, Matrices, and Data Frames](https://www.r-bloggers.com/2025/01/basic-data-structures-in-r-vectors-matrices-and-data-frames/) +- [@video@BASIC DATA STRUCTURES IN R PROGRAMMING](https://www.youtube.com/watch?v=k0zLwDAQ6Uw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-tables@SCW3xD7wCf3_ruTtxBkAX.md b/roadmaps/r-programming/content/data-tables@SCW3xD7wCf3_ruTtxBkAX.md new file mode 100644 index 000000000..fad73b12b --- /dev/null +++ b/roadmaps/r-programming/content/data-tables@SCW3xD7wCf3_ruTtxBkAX.md @@ -0,0 +1,9 @@ +# Data Tables + +A data table is the structure provided by the data.table package, built specifically for fast, memory-efficient operations on large datasets. It extends the data frame with a more concise syntax and internal optimizations that make filtering, grouping, and joining noticeably faster on big data. Many R users learn dplyr first and pick up data tables specifically when performance on large datasets becomes a bottleneck. + +Visit the following resources to learn more: + +- [@article@Introduction to data.table](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.html) +- [@article@DT: An R interface to the DataTables library](https://rstudio.github.io/DT/) +- [@video@data.table Package in R](https://www.youtube.com/playlist?list=PLu6UwBFCnlEcb47DE-yWPjoEeZp10PDJz) \ No newline at end of file diff --git a/roadmaps/r-programming/content/data-types@Iw6aTwdfOys4mzozQ_2Hz.md b/roadmaps/r-programming/content/data-types@Iw6aTwdfOys4mzozQ_2Hz.md new file mode 100644 index 000000000..792a148f7 --- /dev/null +++ b/roadmaps/r-programming/content/data-types@Iw6aTwdfOys4mzozQ_2Hz.md @@ -0,0 +1,8 @@ +# Data Types + +R organizes values into a handful of basic types: numbers, text, and logical values, among others. Every piece of data in R falls into one of these categories, and knowing them shapes how code is written and debugged. + +Visit the following resources to learn more: + +- [@article@R Data Types](https://intro2r.com/data-types.html) +- [@article@Data types in R programming](https://www.youtube.com/watch?v=VtUVQWl0aRA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/debugging@1shfOZKx1DfYAOtQb1CoK.md b/roadmaps/r-programming/content/debugging@1shfOZKx1DfYAOtQb1CoK.md new file mode 100644 index 000000000..288eb458e --- /dev/null +++ b/roadmaps/r-programming/content/debugging@1shfOZKx1DfYAOtQb1CoK.md @@ -0,0 +1,9 @@ +# Debugging + +Debugging means finding out why code isn't behaving as expected, using tools like `browser()`, which pauses execution at a specific line so you can inspect variables, and `traceback()`, which shows the sequence of function calls leading up to an error. RStudio and Positron both provide visual debugging tools built on top of these, including breakpoints you can set by clicking in the editor. Print statements remain a simple and effective debugging tool for many everyday issues. + +Visit the following resources to learn more: + +- [@article@Debugging](https://adv-r.hadley.nz/debugging.html) +- [@article@Debugging with the RStudio IDE](https://support.posit.co/hc/en-us/articles/205612627-Debugging-with-the-RStudio-IDE) +- [@video@Introduction to the RStudio Debugger](https://www.youtube.com/watch?v=QQxTf3o07NU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/descriptive-statistics@epfsRqEvWDjgeSrku0emD.md b/roadmaps/r-programming/content/descriptive-statistics@epfsRqEvWDjgeSrku0emD.md new file mode 100644 index 000000000..fa06a227b --- /dev/null +++ b/roadmaps/r-programming/content/descriptive-statistics@epfsRqEvWDjgeSrku0emD.md @@ -0,0 +1,9 @@ +# Descriptive Statistics + +Descriptive statistics summarize the basic characteristics of a dataset: central tendency, spread, and shape. They form the foundation for almost every deeper statistical technique, since you need to understand a variable's basic behavior before modeling relationships involving it. R's base `summary()` function calculates several of these at once for a quick overview. + +Visit the following resources to learn more: + +- [@article@Descriptive statistics in R](https://statsandr.com/blog/descriptive-statistics-in-r/) +- [@video@Descriptive Statistics in R Tutorial](https://www.youtube.com/playlist?list=PLu6UwBFCnlEdeJg21seDkYomXz3gt8uAQ) +- [@video@Calculating Descriptive Statistics of Data in R](https://www.youtube.com/watch?v=UwnrWyuNYxA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/distribution-analysis@52p2OUjL11aRM4PyHrCt_.md b/roadmaps/r-programming/content/distribution-analysis@52p2OUjL11aRM4PyHrCt_.md new file mode 100644 index 000000000..8043a9915 --- /dev/null +++ b/roadmaps/r-programming/content/distribution-analysis@52p2OUjL11aRM4PyHrCt_.md @@ -0,0 +1,8 @@ +# Distribution Analysis + +Distribution analysis looks at how values in a dataset are spread across their range, most commonly using histograms and boxplots. A histogram groups values into bins and shows how many observations fall into each, revealing shape characteristics like skewness. A boxplot summarizes a distribution's median, quartiles, and potential outliers in a single compact visual. + +Visit the following resources to learn more: + +- [@article@Exploring Data Distribution in R: A Comprehensive Guide](https://www.r-bloggers.com/2023/08/exploring-data-distribution-in-r-a-comprehensive-guide/) +- [@video@Visualizing Statistical Distributions in R](https://www.youtube.com/watch?v=qG7hByQnzuY) \ No newline at end of file diff --git a/roadmaps/r-programming/content/dplyr@2EXfdeT4WoEg5ZNr9eCtK.md b/roadmaps/r-programming/content/dplyr@2EXfdeT4WoEg5ZNr9eCtK.md new file mode 100644 index 000000000..76731147e --- /dev/null +++ b/roadmaps/r-programming/content/dplyr@2EXfdeT4WoEg5ZNr9eCtK.md @@ -0,0 +1,10 @@ +# dplyr + +dplyr provides a small set of verbs for the most common data manipulation tasks: filtering rows, selecting columns, arranging order, and summarizing groups. These verbs are designed to read almost like plain English, making dplyr code easier to follow than equivalent base R code. It's the core data manipulation package within the tidyverse. + +Visit the following resources to learn more: + +- [@official@dplyr](https://dplyr.tidyverse.org/) +- [@official@Introduction to dplyr](https://dplyr.tidyverse.org/articles/dplyr.html) +- [@video@dplyr: Getting Started](https://www.youtube.com/watch?v=THGFXV4RW8U&list=PLiC1doDIe9rC8RgWPAWqDETE-VbKOWfWl) +- [@video@Manipulate and clean your data in R with the dplyr package](https://www.youtube.com/watch?v=uoqFm1Jyyvw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/dropping-vs-imputing@xIS0cJ8ui0siBoZJr3-B_.md b/roadmaps/r-programming/content/dropping-vs-imputing@xIS0cJ8ui0siBoZJr3-B_.md new file mode 100644 index 000000000..ef233beba --- /dev/null +++ b/roadmaps/r-programming/content/dropping-vs-imputing@xIS0cJ8ui0siBoZJr3-B_.md @@ -0,0 +1,9 @@ +# Dropping vs. Imputing + +Once missing values are found, you have to decide whether to drop rows containing them, which is simple but can lose real information, or impute them, replacing missing values with an estimate like the column mean. The right choice depends heavily on why the data is missing and how much of it there is. Dropping too aggressively can bias results if the missingness isn't random. + +Visit the following resources to learn more: + +- [@article@Missing values](https://r4ds.hadley.nz/missing-values.html) +- [@article@A Complete Guide to Handling Missing Values in R: Concepts, Pitfalls, and Practical Imputation with mice](https://dev.to/dipti_moryani_08e62702314/a-complete-guide-to-handling-missing-values-in-r-concepts-pitfalls-and-practical-imputation-with-3b7l) +- [@video@Handling Missing Data and Missing Values in R Programming](https://www.youtube.com/watch?v=kIKg5s_jDAk) \ No newline at end of file diff --git a/roadmaps/r-programming/content/encoding-categories@1bHv3_acNts_BeOn3l6DF.md b/roadmaps/r-programming/content/encoding-categories@1bHv3_acNts_BeOn3l6DF.md new file mode 100644 index 000000000..21612f878 --- /dev/null +++ b/roadmaps/r-programming/content/encoding-categories@1bHv3_acNts_BeOn3l6DF.md @@ -0,0 +1,9 @@ +# Encoding Categories + +Encoding categories turns text labels into R's factor type, giving categorical data the structure needed for modeling and certain visualizations. It also involves deciding on the order categories should follow, since default alphabetical ordering isn't always meaningful. This step usually comes after the raw text has already been cleaned and standardized. + +Visit the following resources to learn more: + +- [@article@A guide to encoding categorical features using R](https://www.r-bloggers.com/2020/02/a-guide-to-encoding-categorical-features-using-r/) +- [@article@Encoding Categorical Data](https://www.tmwr.org/categorical) +- [@video@R - Studio - Encode Categorical data](https://www.youtube.com/watch?v=Q0XsIPM4UWA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/error-handling@bLZXJOMu6-NT2bqntOPfd.md b/roadmaps/r-programming/content/error-handling@bLZXJOMu6-NT2bqntOPfd.md new file mode 100644 index 000000000..89b8a441f --- /dev/null +++ b/roadmaps/r-programming/content/error-handling@bLZXJOMu6-NT2bqntOPfd.md @@ -0,0 +1,9 @@ +# Error Handling + +Error handling is the practice of catching and responding to problems in code instead of letting them crash a script outright. `tryCatch()` lets code that might fail specify what should happen if it does, such as logging a message or returning a default value, which matters for anything depending on unreliable inputs like files or APIs. + +Visit the following resources to learn more: + +- [@article@Catch Me If You Can: Exception Handling in R](https://www.r-bloggers.com/2023/11/catch-me-if-you-can-exception-handling-in-r/) +- [@article@Error Handling and Generation](https://bookdown.org/rdpeng/RProgDA/error-handling-and-generation.html) +- [@video@R Tutorial Playlist - Error handler, try catch statement](https://www.youtube.com/watch?v=ShGJy5beTJo) \ No newline at end of file diff --git a/roadmaps/r-programming/content/excel@SOdl-8SpW1NsQoPtviJ8-.md b/roadmaps/r-programming/content/excel@SOdl-8SpW1NsQoPtviJ8-.md new file mode 100644 index 000000000..85da4d3ab --- /dev/null +++ b/roadmaps/r-programming/content/excel@SOdl-8SpW1NsQoPtviJ8-.md @@ -0,0 +1,9 @@ +# Excel + +Excel files store data in a binary or XML-based format that differs from plain text files, often including multiple sheets and formatting within a single file. R doesn't read them with base functions, so packages like readxl are needed to extract the underlying data into a usable data frame. Reading Excel data means deciding which sheet to read and whether the first row contains headers. + +Visit the following resources to learn more: + +- [@article@Read Excel Files in R: readxl & openxlsx](https://www.datanovia.com/learn/programming/importing-exporting-data/read-excel-files-in-r) +- [@video@Reading and Importing Excel Files Into R With readxl](https://www.youtube.com/watch?v=YxPpNe1UufU) +- [@video@How to import data from Excel files to R | R Programming](https://www.youtube.com/watch?v=q66Gk-DPBh4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/exploratory-data-analysis@s2Wxtvjjz7bYK0sYeNhM4.md b/roadmaps/r-programming/content/exploratory-data-analysis@s2Wxtvjjz7bYK0sYeNhM4.md new file mode 100644 index 000000000..3a8ff47b9 --- /dev/null +++ b/roadmaps/r-programming/content/exploratory-data-analysis@s2Wxtvjjz7bYK0sYeNhM4.md @@ -0,0 +1,9 @@ +# Exploratory Data Analysis + +Exploratory data analysis is the first, applied pass at understanding a new dataset: summarizing it numerically and visually before any deeper modeling. It usually comes right after cleaning and right before more formal statistical analysis. + +Visit the following resources to learn more: + +- [@article@Exploratory Data Analysis](https://r4ds.had.co.nz/exploratory-data-analysis.html) +- [@article@Exploratory Data Analysis in R: A Practical Workflow](https://www.datanovia.com/blog/exploratory-data-analysis-in-r) +- [@video@Exploratory Data Analysis in R: Towards Data Understanding](https://www.youtube.com/watch?v=JW5Ug6NQexg) \ No newline at end of file diff --git a/roadmaps/r-programming/content/faceting--themes@P0NtCbzyGWz5B41feWsAy.md b/roadmaps/r-programming/content/faceting--themes@P0NtCbzyGWz5B41feWsAy.md new file mode 100644 index 000000000..23b6f5e05 --- /dev/null +++ b/roadmaps/r-programming/content/faceting--themes@P0NtCbzyGWz5B41feWsAy.md @@ -0,0 +1,10 @@ +# Faceting & Themes + +Faceting splits a single plot into a grid of smaller plots, one for each level of a categorical variable, making it easy to compare patterns across groups side by side. Themes control the overall visual styling of a plot, like background color, gridlines, and font sizes. Together they cover much of the difference between a rough exploratory plot and one polished enough to share. + +Visit the following resources to learn more: + +- [@article@Lay out panels in a grid](https://ggplot2.tidyverse.org/reference/facet_grid.html) +- [@article@Faceting](https://ggplot2-book.org/facet.html) +- [@article@Complete themes](https://ggplot2.tidyverse.org/reference/ggtheme.html) +- [@video@Advanced ggplot - using facets](https://www.youtube.com/watch?v=sxknFa1rprY) \ No newline at end of file diff --git a/roadmaps/r-programming/content/factors@GeyQm1ONhk_eLXME7OS4M.md b/roadmaps/r-programming/content/factors@GeyQm1ONhk_eLXME7OS4M.md new file mode 100644 index 000000000..bddd9a3ce --- /dev/null +++ b/roadmaps/r-programming/content/factors@GeyQm1ONhk_eLXME7OS4M.md @@ -0,0 +1,9 @@ +# Factors + +A factor represents categorical data, storing a fixed set of possible values called levels, such as "low", "medium", "high". Internally, R stores factors as integers mapped to those level labels, which is more memory-efficient than storing the same category repeatedly as text. Getting factor levels and their order right is a common source of subtle bugs, especially when merging or filtering categorical data. + +Visit the following resources to learn more: + +- [@article@R Factors](https://www.w3schools.com/r/r_factors.asp) +- [@article@Factors](https://r4ds.had.co.nz/factors.html) +- [@video@Factor Variables in R](https://www.youtube.com/watch?v=cspQYQLZbCo) \ No newline at end of file diff --git a/roadmaps/r-programming/content/filter-query-arrange@6w_sSTw1R5MU2zj2RpO5Z.md b/roadmaps/r-programming/content/filter-query-arrange@6w_sSTw1R5MU2zj2RpO5Z.md new file mode 100644 index 000000000..a3e6d344e --- /dev/null +++ b/roadmaps/r-programming/content/filter-query-arrange@6w_sSTw1R5MU2zj2RpO5Z.md @@ -0,0 +1,9 @@ +# Filter, Query, Arrange + +Filtering keeps rows matching a condition, querying more broadly covers selecting the specific subset of data you need, and arranging sorts rows by one or more columns. In dplyr, these map to `filter()` and `arrange()`, both designed to read almost like plain English. Together they cover a large share of everyday data wrangling needs. + +Visit the following resources to learn more: + +- [@article@select, filter & arrange](https://pharmaverse.github.io/intro-to-r-for-sas-programmers-workshop/dplyr.html) +- [@video@Manipulate data using the tidyverse: select, filter and mutate.](https://www.youtube.com/watch?v=nRtp7wSEtJA) +- [@video@Arrange in R - Sort a Dataframe by a Column in R](https://www.youtube.com/watch?v=j7SqaJv-i8k) \ No newline at end of file diff --git a/roadmaps/r-programming/content/forcats@WVgYRRNpsNXBnz7V9JX29.md b/roadmaps/r-programming/content/forcats@WVgYRRNpsNXBnz7V9JX29.md new file mode 100644 index 000000000..abb33d874 --- /dev/null +++ b/roadmaps/r-programming/content/forcats@WVgYRRNpsNXBnz7V9JX29.md @@ -0,0 +1,9 @@ +# forcats + +forcats provides tools for working with factors, R's data type for categorical variables, making common tasks like reordering levels or lumping rare categories together more straightforward than base R. Functions like `fct_reorder()` let you control the order categories appear in in plots and tables, which matters since default factor ordering is often alphabetical rather than meaningful. It's especially useful when preparing categorical data for visualization. + +Visit the following resources to learn more: + +- [@official@Introduction to forcats](https://forcats.tidyverse.org/articles/forcats.html) +- [@video@Using the forcats package to manipulate factor variables.](https://www.youtube.com/watch?v=AClIvVfqspY) +- [@video@Working with factors and categorical variables](https://www.youtube.com/watch?v=26US5GD_6-s) \ No newline at end of file diff --git a/roadmaps/r-programming/content/forward--backward-fill@9mFT0z5yT446_-nGdG492.md b/roadmaps/r-programming/content/forward--backward-fill@9mFT0z5yT446_-nGdG492.md new file mode 100644 index 000000000..e4084dddd --- /dev/null +++ b/roadmaps/r-programming/content/forward--backward-fill@9mFT0z5yT446_-nGdG492.md @@ -0,0 +1,8 @@ +# Forward / Backward Fill + +Forward and backward fill are common in time series data, carrying the last known value forward or the next known value backward to fill gaps. This assumes a value likely stayed the same or is reasonably close to nearby recorded values. It's a simpler alternative to statistical imputation, often used when data is missing due to something like a sensor briefly going offline. + +Visit the following resources to learn more: + +- [@article@Fill in missing values with previous or next value](https://tidyr.tidyverse.org/reference/fill.html) +- [@article@Last observation carried forward](https://r4ds.hadley.nz/missing-values.html#last-observation-carried-forward) \ No newline at end of file diff --git a/roadmaps/r-programming/content/functions@GrKgIYLzkSjtXdK5czN2x.md b/roadmaps/r-programming/content/functions@GrKgIYLzkSjtXdK5czN2x.md new file mode 100644 index 000000000..869467ba1 --- /dev/null +++ b/roadmaps/r-programming/content/functions@GrKgIYLzkSjtXdK5czN2x.md @@ -0,0 +1,10 @@ +# Functions + +A function packages a piece of logic under a name so it can be reused without repeating code. Writing and using functions well, including how they accept inputs and return values, is central to structuring any real R project. + +Visit the following resources to learn more: + +- [@article@R Functions](https://www.w3schools.com/r/r_functions.asp) +- [@article@Functions](https://r4ds.had.co.nz/functions.html) +- [@video@A tutorial for writing functions in R](https://www.youtube.com/watch?v=3uK1OzA7CTs) +- [@video@Create functions in R](https://www.youtube.com/watch?v=dCyj1MCOMrw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/geospatial-analysis@f2NsSRl_UukuqHggghWSw.md b/roadmaps/r-programming/content/geospatial-analysis@f2NsSRl_UukuqHggghWSw.md new file mode 100644 index 000000000..a6faf7b71 --- /dev/null +++ b/roadmaps/r-programming/content/geospatial-analysis@f2NsSRl_UukuqHggghWSw.md @@ -0,0 +1,9 @@ +# Geospatial Analysis + +Geospatial analysis works with data tied to specific locations on Earth, using specialized structures and tools for handling coordinates, boundaries, and spatial relationships. It covers both vector data, like points and polygons, and raster data, like satellite imagery. This is a distinct application area requiring its own set of packages beyond standard data manipulation tools. + +Visit the following resources to learn more: + +- [@article@Introduction to geospatial data analysis in R](https://pmarchand1.github.io/atelier_rgeo/rgeo_workshop.html) +- [@article@An Introduction to Spatial Data Analysis and Visualisation in R](https://data.geods.ac.uk/dataset/an-introduction-to-spatial-data-analysis-and-visualisation-in-r) +- [@video@Geospatial Data in R](https://www.youtube.com/playlist?list=PLD8eCxFKntVHGCOTs6Cvo_EAp1Xh-yVoQ) \ No newline at end of file diff --git a/roadmaps/r-programming/content/ggplot2@4FPrICo0eUAONFvObktqU.md b/roadmaps/r-programming/content/ggplot2@4FPrICo0eUAONFvObktqU.md new file mode 100644 index 000000000..dc4a95376 --- /dev/null +++ b/roadmaps/r-programming/content/ggplot2@4FPrICo0eUAONFvObktqU.md @@ -0,0 +1,9 @@ +# ggplot2 + +ggplot2 is the tidyverse's plotting package, built around the grammar of graphics, which describes any plot as a combination of data, a coordinate system, and layered elements mapped to aesthetics like position or color. Instead of choosing a fixed chart type, you build a plot by combining these pieces, which is why the same approach can produce scatterplots, bar charts, or complex faceted layouts. It's the standard tool for data visualization in modern R. + +Visit the following resources to learn more: + +- [@official@Introduction to ggplot2](https://ggplot2.tidyverse.org/articles/ggplot2.html) +- [@article@A ggplot2 Tutorial for Beautiful Plotting in R](https://www.cedricscherer.com/2019/08/05/a-ggplot2-tutorial-for-beautiful-plotting-in-r/) +- [@video@ggplot for plots and graphs.](https://www.youtube.com/watch?v=HPJn1CMvtmI&list=PLtL57Fdbwb_C6RS0JtBojTNOMVlgpeJkS) \ No newline at end of file diff --git a/roadmaps/r-programming/content/ggplot2@vsqvOoq59aWgGexOSwlFG.md b/roadmaps/r-programming/content/ggplot2@vsqvOoq59aWgGexOSwlFG.md new file mode 100644 index 000000000..b37715a1d --- /dev/null +++ b/roadmaps/r-programming/content/ggplot2@vsqvOoq59aWgGexOSwlFG.md @@ -0,0 +1,9 @@ +# ggplot2 + +ggplot2 is a data visualization package that follows the grammar of graphics, a system for describing and building graphs by combining independent components. It allows users to create complex plots by layering elements such as data, coordinate systems, and visual mappings. By providing a consistent and structured approach to plotting, it enables the creation of publication-quality visualizations through a series of intuitive, additive commands. + +Visit the following resources to learn more: + +- [@article@Introduction to ggplot2](https://ggplot2.tidyverse.org/articles/ggplot2.html) +- [@video@ggplot Tutorials](https://www.youtube.com/playlist?list=PLBnFxG6owe1HRvUL6A5QNF_8ujP8NdLMc) +- [@video@An introduction to data visualization using R programming](https://www.youtube.com/watch?v=HPJn1CMvtmI) \ No newline at end of file diff --git a/roadmaps/r-programming/content/grammar-of-graphics@lEiv0DXeWD7w67GdZdy54.md b/roadmaps/r-programming/content/grammar-of-graphics@lEiv0DXeWD7w67GdZdy54.md new file mode 100644 index 000000000..b50368590 --- /dev/null +++ b/roadmaps/r-programming/content/grammar-of-graphics@lEiv0DXeWD7w67GdZdy54.md @@ -0,0 +1,9 @@ +# Grammar of Graphics + +The grammar of graphics is the conceptual framework ggplot2 is built on, describing any plot as a combination of data, a coordinate system, and layered geometric elements mapped to aesthetics. Instead of choosing a fixed chart type, you build a plot by combining these pieces, which is why the same underlying approach can produce scatterplots, bar charts, or complex layouts using consistent syntax. Understanding this grammar is what makes ggplot2 code readable and predictable once you know the pattern. + +Visit the following resources to learn more: + +- [@article@The Grammar of Graphics](https://bookdown.org/gavinmasterson/dvfc/the-grammar-of-graphics.html) +- [@article@Grammar of Graphics](https://ramnathv.github.io/pycon2014-r/visualize/ggplot2.html) +- [@video@A Grammar of Graphics](https://www.youtube.com/watch?v=RCaFBJWXfZc) \ No newline at end of file diff --git a/roadmaps/r-programming/content/group-by--summarize@fuAX0fNChwliVC_gJ7GV2.md b/roadmaps/r-programming/content/group-by--summarize@fuAX0fNChwliVC_gJ7GV2.md new file mode 100644 index 000000000..0b1f2aae2 --- /dev/null +++ b/roadmaps/r-programming/content/group-by--summarize@fuAX0fNChwliVC_gJ7GV2.md @@ -0,0 +1,9 @@ +# Group By & Summarize + +Grouping splits a data frame into groups based on one or more columns, and summarizing then collapses each group down to a single summary row, such as a group's average or count. Together they replace the need for manual loops when calculating statistics per category, like average sales per region. This pattern is one of the most commonly used in all of data analysis. + +Visit the following resources to learn more: + +- [@article@Summarise each group down to one row](https://dplyr.tidyverse.org/reference/summarise.html) +- [@article@How to Group and Summarize Data in R](https://www.r-bloggers.com/2022/06/how-to-group-and-summarize-data-in-r/) +- [@video@Group by and Summarise functions in R programming](https://www.youtube.com/watch?v=XoApM8QrPl8) \ No newline at end of file diff --git a/roadmaps/r-programming/content/hypothesis-testing@0xYk_O7rNoy7O116xVJvi.md b/roadmaps/r-programming/content/hypothesis-testing@0xYk_O7rNoy7O116xVJvi.md new file mode 100644 index 000000000..e289f4ce3 --- /dev/null +++ b/roadmaps/r-programming/content/hypothesis-testing@0xYk_O7rNoy7O116xVJvi.md @@ -0,0 +1,8 @@ +# Hypothesis Testing + +Hypothesis testing provides a formal framework for deciding whether an observed pattern in data is likely real or could plausibly have occurred by chance alone. It starts with a null hypothesis, typically stating there's no effect, and calculates a p-value representing how surprising the observed data would be if that null hypothesis were true. Common tests include the t-test for comparing means and the chi-square test for categorical relationships. + +Visit the following resources to learn more: + +- [@article@Hypothesis Testing in R](https://www.r-bloggers.com/2024/01/hypothesis-testing-in-r-elevating-your-data-analysis-skills/) +- [@video@Hypothesis testing in R](https://www.youtube.com/watch?v=oNpfjcIf2Es) \ No newline at end of file diff --git a/roadmaps/r-programming/content/igraph@WA-oBafJlw5OUphYrDm5u.md b/roadmaps/r-programming/content/igraph@WA-oBafJlw5OUphYrDm5u.md new file mode 100644 index 000000000..35e3c78bb --- /dev/null +++ b/roadmaps/r-programming/content/igraph@WA-oBafJlw5OUphYrDm5u.md @@ -0,0 +1,9 @@ +# igraph + +igraph is the standard R package for building, analyzing, and visualizing network graphs. It provides tools for calculating centrality measures, detecting communities, and computing paths between nodes, covering most of the core graph theory operations needed. It's the foundation many other network analysis tools in R, including tidygraph, build on top of. + +Visit the following resources to learn more: + +- [@official@igraph](https://r.igraph.org/) +- [@article@igraph guide](https://robwiederstein.github.io/network_analysis/igraph.html) +- [@video@Statistical network analysis in R (igraph) and Python](https://www.youtube.com/watch?v=yhRvta6mGnQ) \ No newline at end of file diff --git a/roadmaps/r-programming/content/importing-data@KrX28-WcpfMiuvPBtHAXw.md b/roadmaps/r-programming/content/importing-data@KrX28-WcpfMiuvPBtHAXw.md new file mode 100644 index 000000000..26c400f68 --- /dev/null +++ b/roadmaps/r-programming/content/importing-data@KrX28-WcpfMiuvPBtHAXw.md @@ -0,0 +1,9 @@ +# Importing Data + +Importing data means getting information from outside sources into R, whatever form it originally takes. Flat files, spreadsheets, web pages, and APIs each need a different approach to load correctly. + +Visit the following resources to learn more: + +- [@article@Importing Data](https://intro2r.com/importing-data.html) +- [@article@Importing Data Files into R](https://libguides.chapman.edu/R/import) +- [@video@How to import data and install packages.](https://www.youtube.com/watch?v=e8B9YU_M5FM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/installing-packages@_4619gNlgw_dDr_fVZ7Up.md b/roadmaps/r-programming/content/installing-packages@_4619gNlgw_dDr_fVZ7Up.md new file mode 100644 index 000000000..aef991399 --- /dev/null +++ b/roadmaps/r-programming/content/installing-packages@_4619gNlgw_dDr_fVZ7Up.md @@ -0,0 +1,10 @@ +# Installing Packages + +Installing packages adds functionality to R beyond what comes built in, using the base function `install.packages()` to download and install from CRAN. Running `install.packages("dplyr")`, for example, fetches the dplyr package and its dependencies. This is the most basic and common way to extend R with new capabilities. + +Visit the following resources to learn more: + +- [@article@Installing and loading packages](https://rladiessydney.org/courses/01-basicbasics-2) +- [@article@R packages](https://intro2r.com/packages.html) +- [@article@The Easy Way to Install a Package in R (with 8 Code Examples)](https://www.dataquest.io/blog/install-package-r/) +- [@video@Installing Packages in R Studio](https://www.youtube.com/watch?v=u1r5XTqrCTQ) \ No newline at end of file diff --git a/roadmaps/r-programming/content/installing-r@8sLFw8BlwuE7tvMrDg9Pp.md b/roadmaps/r-programming/content/installing-r@8sLFw8BlwuE7tvMrDg9Pp.md new file mode 100644 index 000000000..0829e75bc --- /dev/null +++ b/roadmaps/r-programming/content/installing-r@8sLFw8BlwuE7tvMrDg9Pp.md @@ -0,0 +1,10 @@ +# Installing R + +Installing R involves downloading the base software environment from the Comprehensive R Archive Network (CRAN) and executing the installer for your specific operating system. This process sets up the core language engine, allowing you to run R scripts, manage packages, and perform statistical computations directly on your computer. Once the installation is complete, you can interact with the language through the default console or by using an integrated development environment like Positron or RStudio. + +Visit the following resources to learn more: + +- [@article@Installing R](https://intro2r.com/install_r.html) +- [@article@Installing R and RStudio](https://rstudio-education.github.io/hopr/starting.html) +- [@video@R Programming Tutorial - Learn the Basics of Statistical Computing](https://www.youtube.com/watch?v=_V8eKsto3Ug) +- [@video@How to install R and RStudio on Windows 11 (Updated 2025)](https://www.youtube.com/watch?v=mxNrU902uyc) \ No newline at end of file diff --git a/roadmaps/r-programming/content/integer@K1whVa9-2i8QMqDo_tNlZ.md b/roadmaps/r-programming/content/integer@K1whVa9-2i8QMqDo_tNlZ.md new file mode 100644 index 000000000..ded996566 --- /dev/null +++ b/roadmaps/r-programming/content/integer@K1whVa9-2i8QMqDo_tNlZ.md @@ -0,0 +1,7 @@ +# Integer + +Integers are whole numbers stored more compactly than numeric values, created by appending an `L` to a number, like `5L`. They matter when memory efficiency counts, since integers take up less space than numeric doubles. Most everyday R code doesn't need to worry about the distinction, since R converts between the two automatically in most operations. + +Visit the following resources to learn more: + +- [@article@Integers](https://statsandr.com/blog/data-types-in-r/#integer) \ No newline at end of file diff --git a/roadmaps/r-programming/content/interactive-plots@BMWA2CF4VkXEneErhJym-.md b/roadmaps/r-programming/content/interactive-plots@BMWA2CF4VkXEneErhJym-.md new file mode 100644 index 000000000..99a4bf3f2 --- /dev/null +++ b/roadmaps/r-programming/content/interactive-plots@BMWA2CF4VkXEneErhJym-.md @@ -0,0 +1,7 @@ +# Interactive Plots + +Interactive plots let viewers hover over points for details, zoom into a region, or toggle categories on and off, rather than viewing a fixed, static image. They work particularly well in dashboards, reports viewed in a browser, or any context where the audience benefits from exploring the data themselves. They aren't useful for print or contexts where the output needs to be a fixed image. + +Visit the following resources to learn more: + +- [@article@https://medium.com/codetodeploy/data-visualization-with-r-creating-interactive-dashboards-1a7f0634346d](https://medium.com/codetodeploy/data-visualization-with-r-creating-interactive-dashboards-1a7f0634346d) \ No newline at end of file diff --git a/roadmaps/r-programming/content/introduction@QUzLkB8iKfUBtyAfKc8LC.md b/roadmaps/r-programming/content/introduction@QUzLkB8iKfUBtyAfKc8LC.md new file mode 100644 index 000000000..e49ba3783 --- /dev/null +++ b/roadmaps/r-programming/content/introduction@QUzLkB8iKfUBtyAfKc8LC.md @@ -0,0 +1,10 @@ +# What is R + +R is a programming language built for statistical computing and data analysis. Bell Labs statisticians created its predecessor, S, in the 1970s, and R emerged in the 1990s as an open-source implementation of similar ideas. It comes with built-in support for vectors, data frames, and statistical functions, so tasks like regression or plotting a distribution take just a line or two of code. Universities, pharmaceutical companies, and data science teams use it heavily for analysis, visualization, and research reproducibility. + +Visit the following resources to learn more: + +- [@official@Introduction to R](https://www.r-project.org/about.html) +- [@article@R Introduction](https://www.w3schools.com/r/r_intro.asp) +- [@article@What Is R Programming? Definition, Use Cases and FAQ](https://www.coursera.org/articles/what-is-r-programming) +- [@video@R programming for ABSOLUTE beginners](https://www.youtube.com/watch?v=FY8BISK5DpM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/iqr@ucEFYVtXIvuYKjudK3pwB.md b/roadmaps/r-programming/content/iqr@ucEFYVtXIvuYKjudK3pwB.md new file mode 100644 index 000000000..133b6ecc8 --- /dev/null +++ b/roadmaps/r-programming/content/iqr@ucEFYVtXIvuYKjudK3pwB.md @@ -0,0 +1,8 @@ +# IQR + +The IQR method for detecting outliers flags values that fall well below or above the interquartile range, the range between the 25th and 75th percentile of the data. It's a robust approach, less sensitive to extreme values than methods based on the mean and standard deviation. It's commonly visualized directly through a boxplot's whiskers. + +Visit the following resources to learn more: + +- [@article@Steps to detect outliers using Interquartile range(IQR) with R](https://medium.com/@psrinivasan028/steps-to-detect-outliers-using-interquartile-range-iqr-with-r-1f9ed7895d96) +- [@article@Outliers detection in R](https://statsandr.com/blog/outliers-detection-in-r/) \ No newline at end of file diff --git a/roadmaps/r-programming/content/isnull-isna@bcODvfBqCUwLVXa8HKOFB.md b/roadmaps/r-programming/content/isnull-isna@bcODvfBqCUwLVXa8HKOFB.md new file mode 100644 index 000000000..ccf146454 --- /dev/null +++ b/roadmaps/r-programming/content/isnull-isna@bcODvfBqCUwLVXa8HKOFB.md @@ -0,0 +1,9 @@ +# isnull, isna + +Detecting missing values in R relies on `is.na()`, since direct comparison like `NA == NA` doesn't return `TRUE` the way you might expect. This function returns a logical vector marking which values are missing, which can then be summed to count them or used to filter rows. It's the starting point before deciding how to handle any missing data found. + +Visit the following resources to learn more: + +- [@article@Missing values](https://r4ds.hadley.nz/missing-values.html) +- [@article@R null values: NULL, NA, NaN, Inf](https://www.r-bloggers.com/2018/07/r-null-values-null-na-nan-inf/) +- [@video@Handling NA in R | is.na, na.omit & na.rm Functions for Missing Values](https://www.youtube.com/watch?v=q8eR2suCyGk) \ No newline at end of file diff --git a/roadmaps/r-programming/content/joins@WdiPYzeuO8dKQsuP0xy4P.md b/roadmaps/r-programming/content/joins@WdiPYzeuO8dKQsuP0xy4P.md new file mode 100644 index 000000000..412a5f5dd --- /dev/null +++ b/roadmaps/r-programming/content/joins@WdiPYzeuO8dKQsuP0xy4P.md @@ -0,0 +1,9 @@ +# Joins + +Joins combine two data frames based on matching values in one or more shared columns, similar to joins in SQL. An inner join keeps only rows with matches in both tables, a left join keeps all rows from the first table and fills in matches where available, and a full join keeps all rows from both regardless of matches. Choosing the right join type is essential whenever data is spread across multiple related tables. + +Visit the following resources to learn more: + +- [@article@Joins](https://r4ds.hadley.nz/joins.html) +- [@article@Mutating joins](https://dplyr.tidyverse.org/reference/mutate-joins.html) +- [@video@Join Data with dplyr in R (6 Examples)](https://www.youtube.com/watch?v=Yg-pNqzDuN4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/json@R_8vJSp2Zp0CBWMeI2gsd.md b/roadmaps/r-programming/content/json@R_8vJSp2Zp0CBWMeI2gsd.md new file mode 100644 index 000000000..08e599e38 --- /dev/null +++ b/roadmaps/r-programming/content/json@R_8vJSp2Zp0CBWMeI2gsd.md @@ -0,0 +1,9 @@ +# JSON + +JSON is a structured text format built around nested key-value pairs, commonly returned by web APIs. Parsing it in R usually means using a package like jsonlite to convert the response into R data structures. Because JSON's nested structure often doesn't map directly onto a flat data frame, some restructuring is usually needed afterward to get it into a usable tabular shape. + +Visit the following resources to learn more: + +- [@article@Processing JSON data](https://datacarpentry.github.io/r-socialsci/07-json.html) +- [@article@How to read JSON files in R](https://www.educative.io/answers/how-to-read-json-files-in-r) +- [@video@Read JSON Data into R](https://www.youtube.com/watch?v=ngALTXed0F0) \ No newline at end of file diff --git a/roadmaps/r-programming/content/leaflet@2uHsp_MQMF3WaOgcv0eDY.md b/roadmaps/r-programming/content/leaflet@2uHsp_MQMF3WaOgcv0eDY.md new file mode 100644 index 000000000..60d11fbb8 --- /dev/null +++ b/roadmaps/r-programming/content/leaflet@2uHsp_MQMF3WaOgcv0eDY.md @@ -0,0 +1,9 @@ +# leaflet + +leaflet creates interactive, web-based maps in R, built on top of the popular Leaflet.js JavaScript library. Unlike static maps, leaflet maps let viewers pan, zoom, and click on individual features to see more detail. It integrates well with Shiny apps, letting map interactions trigger updates elsewhere in a dashboard. + +Visit the following resources to learn more: + +- [@article@An R Interface to Leaflet Maps](https://rstudio.github.io/leaflet/) +- [@article@Interactive Maps with leaflet in R](https://r-graph-gallery.com/package/leaflet.html) +- [@video@R Leaflet package | R Leaflet Tutorial](https://www.youtube.com/playlist?list=PL6wLL_RojB5y8uL3uuIMnJ6JoTIFywQ-r) \ No newline at end of file diff --git a/roadmaps/r-programming/content/linear-regression@PMGbX81TpodkDVz8o1z-T.md b/roadmaps/r-programming/content/linear-regression@PMGbX81TpodkDVz8o1z-T.md new file mode 100644 index 000000000..3d7afee48 --- /dev/null +++ b/roadmaps/r-programming/content/linear-regression@PMGbX81TpodkDVz8o1z-T.md @@ -0,0 +1,9 @@ +# Linear Regression + +Linear regression models the relationship between a numeric outcome and one or more predictor variables, fitting a straight line, or hyperplane with multiple predictors, that best describes the relationship. R's `lm()` function fits linear models with a simple formula syntax, like `lm(sales ~ advertising)`. Checking the model's assumptions, like linearity and constant variance of the errors, matters for trusting its results. + +Visit the following resources to learn more: + +- [@article@Linear regression in R](https://developer.ibm.com/tutorials/awb-linear-regression-in-r/) +- [@article@How to Do Linear Regression in R](https://www.datacamp.com/tutorial/linear-regression-R) +- [@video@Linear regression using R programming](https://www.youtube.com/watch?v=-mGXnm0fHtI) \ No newline at end of file diff --git a/roadmaps/r-programming/content/lists@lbYcKVjKw1mMU1DIGwA-s.md b/roadmaps/r-programming/content/lists@lbYcKVjKw1mMU1DIGwA-s.md new file mode 100644 index 000000000..b198eeded --- /dev/null +++ b/roadmaps/r-programming/content/lists@lbYcKVjKw1mMU1DIGwA-s.md @@ -0,0 +1,8 @@ +# Lists + +A list is a flexible container that can hold elements of different types and lengths in a single object, unlike a vector, which requires uniform type. A single list might hold a character string, a numeric vector, and a data frame all at once. Accessing elements typically uses double brackets, `[[ ]]`, to pull out a single element, versus single brackets, `[ ]`, which return a sublist. + +Visit the following resources to learn more: + +- [@article@R Lists](https://www.w3schools.com/r/r_lists.asp) +- [@video@Working with lists in R](https://www.youtube.com/watch?v=X8lNTDeiKiE) \ No newline at end of file diff --git a/roadmaps/r-programming/content/logical@jQTOs0UfekeCV6sPWVOr2.md b/roadmaps/r-programming/content/logical@jQTOs0UfekeCV6sPWVOr2.md new file mode 100644 index 000000000..ee75f969f --- /dev/null +++ b/roadmaps/r-programming/content/logical@jQTOs0UfekeCV6sPWVOr2.md @@ -0,0 +1,7 @@ +# Logical + +Logical values represent true or false, written as `TRUE` and `FALSE`. They result from comparisons like `5 > 3` and drive conditional logic throughout R code, such as `if` statements and filtering rows in a data frame. Logical values can also be summed directly, since R treats `TRUE` as 1 and `FALSE` as 0 in numeric contexts. + +Visit the following resources to learn more: + +- [@article@R Booleans / Logical Values](https://www.w3schools.com/r/r_booleans.asp) \ No newline at end of file diff --git a/roadmaps/r-programming/content/logistic-regression@nfuMTLrkI-XSNDseEOkXD.md b/roadmaps/r-programming/content/logistic-regression@nfuMTLrkI-XSNDseEOkXD.md new file mode 100644 index 000000000..f6979484b --- /dev/null +++ b/roadmaps/r-programming/content/logistic-regression@nfuMTLrkI-XSNDseEOkXD.md @@ -0,0 +1,9 @@ +# Logistic Regression + +Logistic regression models a binary outcome, like whether an event happens or not, as a function of one or more predictor variables. It predicts the probability of the outcome falling into one category, using the `glm()` function with a logistic link in R. It's one of the most widely used models for classification problems, both in traditional statistics and as a baseline in machine learning. + +Visit the following resources to learn more: + +- [@article@Logistic Regression with R](https://bookdown.org/nhanhocumc/biodata-r/logisticr.html) +- [@article@Logistic Regression in R Tutorial](https://www.datacamp.com/tutorial/logistic-regression-R) +- [@video@Logistic Regression using R programming](https://www.youtube.com/watch?v=kwLsOsSI9JM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/loops@mCa0SGe_bHuU5P_FEsNYI.md b/roadmaps/r-programming/content/loops@mCa0SGe_bHuU5P_FEsNYI.md new file mode 100644 index 000000000..a4af035bd --- /dev/null +++ b/roadmaps/r-programming/content/loops@mCa0SGe_bHuU5P_FEsNYI.md @@ -0,0 +1,9 @@ +# Loops + +A `for` loop repeats a block of code once for each element in a vector or list. A `while` loop repeats as long as a condition stays true, useful when you don't know in advance how many iterations you'll need. R loops are generally slower than vectorized alternatives, so experienced R users often reach for functions like `sapply()` or dplyr verbs where possible. + +Visit the following resources to learn more: + +- [@article@R Loops](https://intro2r.com/loops.html) +- [@article@Loops](https://rstudio-education.github.io/hopr/loops.html) +- [@video@Loops using R programming](https://www.youtube.com/watch?v=UvopClD98LQ) \ No newline at end of file diff --git a/roadmaps/r-programming/content/lubridate@aD3VCC-ltZVisOgC--gAd.md b/roadmaps/r-programming/content/lubridate@aD3VCC-ltZVisOgC--gAd.md new file mode 100644 index 000000000..d7c22f195 --- /dev/null +++ b/roadmaps/r-programming/content/lubridate@aD3VCC-ltZVisOgC--gAd.md @@ -0,0 +1,10 @@ +# lubridate + +lubridate makes working with dates and times considerably easier than base R alone. Functions like `ymd()`, `mdy()`, and `dmy()` parse dates written in different common formats without requiring a manually specified format string. It also provides clear tools for date arithmetic using durations, periods, and intervals, each handling calendar quirks like leap years slightly differently. + +Visit the following resources to learn more: + +- [@official@lubridate](https://lubridate.tidyverse.org/) +- [@article@Mastering Date and Time Data in R with lubridate](https://www.r-bloggers.com/2024/09/mastering-date-and-time-data-in-r-with-lubridate/) +- [@video@Lubridate - how to manipulate date and time data in R](https://www.youtube.com/watch?v=g4JF_Ew8qEc) +- [@video@lubridate Package Tutorial](https://www.youtube.com/watch?v=Tu-bnBaHpo0&list=PLu6UwBFCnlEel8EaYcRShzIKmh4HcIZZi) \ No newline at end of file diff --git a/roadmaps/r-programming/content/machine-learning@KWfYpJQwYeQzP4buGaA9y.md b/roadmaps/r-programming/content/machine-learning@KWfYpJQwYeQzP4buGaA9y.md new file mode 100644 index 000000000..85624d070 --- /dev/null +++ b/roadmaps/r-programming/content/machine-learning@KWfYpJQwYeQzP4buGaA9y.md @@ -0,0 +1,8 @@ +# Machine Learning + +Machine learning builds predictive and pattern-finding models from data, using R's modern modeling frameworks. It builds directly on the statistical foundations covered earlier in the roadmap. + +Visit the following resources to learn more: + +- [@article@An Introduction to Machine Learning with R](https://lgatto.github.io/IntroMachineLearningWithR/an-introduction-to-machine-learning-with-r.html) +- [@video@Machine learning with R](https://www.youtube.com/playlist?list=PLKBUk9FL4nBaHaW7C4_SAQfY_Wf-hupUG) \ No newline at end of file diff --git a/roadmaps/r-programming/content/map-functions@e4mVEXKmmQbz051wE1HPZ.md b/roadmaps/r-programming/content/map-functions@e4mVEXKmmQbz051wE1HPZ.md new file mode 100644 index 000000000..ec7c3cf58 --- /dev/null +++ b/roadmaps/r-programming/content/map-functions@e4mVEXKmmQbz051wE1HPZ.md @@ -0,0 +1,9 @@ +# Map Functions + +Map functions apply a function to every element of a list or vector and collect the results, avoiding the need for an explicit loop. purrr's `map()` always returns a list, while variants like `map_dbl()` return a vector of a specific type, making the expected output explicit. This becomes especially useful for iterating over nested data, such as running the same model on many subsets of a dataset at once. + +Visit the following resources to learn more: + +- [@article@Mastering the map() Function in R: A Comprehensive Guide](https://www.r-bloggers.com/2024/03/mastering-the-map-function-in-r-a-comprehensive-guide/) +- [@article@Functionals in R](https://adv-r.hadley.nz/functionals.html) +- [@video@Alternative to for loops in R with purrr's map, map_dbl, and map_dfr functions (CC043)](https://www.youtube.com/watch?v=nXQDiCTLTgU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/matrices@29bAj72LyJQ62JbBl9vvG.md b/roadmaps/r-programming/content/matrices@29bAj72LyJQ62JbBl9vvG.md new file mode 100644 index 000000000..5d40a70fb --- /dev/null +++ b/roadmaps/r-programming/content/matrices@29bAj72LyJQ62JbBl9vvG.md @@ -0,0 +1,10 @@ +# Matrices + +A matrix is a two-dimensional grid of values, all of the same type, arranged in rows and columns. Matrices support standard linear algebra operations like multiplication, transposition, and inversion, making them the natural structure for mathematical computation in R. Unlike a data frame, every cell in a matrix must share the same underlying data type. + +Visit the following resources to learn more: + +- [@article@R Matrices](https://www.w3schools.com/r/r_matrices.asp) +- [@article@Understanding Matrices in R Programming](https://www.r-bloggers.com/2023/11/understanding-matrices-in-r-programming/) +- [@video@Matrices in R](https://www.youtube.com/watch?v=3fHRSAYgRKY) +- [@video@How to Create Matrices and Perform matrix Operations in R](https://www.youtube.com/watch?v=SYYUBytX1ng) \ No newline at end of file diff --git a/roadmaps/r-programming/content/mutate--transform@8vgTUVCNPb71lNHKycHce.md b/roadmaps/r-programming/content/mutate--transform@8vgTUVCNPb71lNHKycHce.md new file mode 100644 index 000000000..319a49f83 --- /dev/null +++ b/roadmaps/r-programming/content/mutate--transform@8vgTUVCNPb71lNHKycHce.md @@ -0,0 +1,9 @@ +# Mutate & Transform + +Mutating adds new columns or changes existing ones in a data frame, calculating values across every row based on an expression you specify. Multiple new columns can be created in a single step, with later columns able to reference ones created earlier in the same step. This is one of the most frequently used data manipulation operations, since almost every analysis involves deriving new variables from existing ones. + +Visit the following resources to learn more: + +- [@article@Create, modify, and delete columns](https://dplyr.tidyverse.org/reference/mutate.html) +- [@article@dplyr mutate() in R: Create and Transform Columns](https://r-statistics.co/dplyr-mutate-in-R.html) +- [@video@dplyr: mutate](https://www.youtube.com/watch?v=DKWM3C-fMRA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/network-analysis@YBcSlradj7221NPcwWcFk.md b/roadmaps/r-programming/content/network-analysis@YBcSlradj7221NPcwWcFk.md new file mode 100644 index 000000000..aa9cb6fd7 --- /dev/null +++ b/roadmaps/r-programming/content/network-analysis@YBcSlradj7221NPcwWcFk.md @@ -0,0 +1,10 @@ +# Network Analysis + +Network analysis studies relationships between entities, represented as a graph of nodes connected by edges, such as people connected by friendships or web pages connected by links. It covers identifying influential nodes, detecting clusters or communities within a network, and visualizing the overall structure. This is a distinct application area from typical tabular data analysis, since relationships between records matter as much as the records themselves. + +Visit the following resources to learn more: + +- [@article@Network Analysis using R](https://ladal.edu.au/tutorials/network_analysis/network_analysis.html) +- [@article@Network Analysis in R](https://bookdown.org/jdholster1/idsr/network-analysis.html) +- [@article@Introduction to Network Analysis Tools in R](https://statnet.org/workshop-intro-sna-tools/) +- [@video@Social Network Analysis: A Beginner's Lab in R](https://www.youtube.com/playlist?list=PL1M5TsfDV6VsyfMHfkDcUW71ADKcUNCUI) \ No newline at end of file diff --git a/roadmaps/r-programming/content/nlp@BgwWbX4MgOPwMDPGX_HFs.md b/roadmaps/r-programming/content/nlp@BgwWbX4MgOPwMDPGX_HFs.md new file mode 100644 index 000000000..588569dc1 --- /dev/null +++ b/roadmaps/r-programming/content/nlp@BgwWbX4MgOPwMDPGX_HFs.md @@ -0,0 +1,10 @@ +# NLP + +NLP, or natural language processing, covers techniques for analyzing and extracting meaning from text data, such as tokenizing, measuring sentiment, or discovering topics across a collection of documents. R has a mature set of packages for this kind of work, ranging from tidyverse-friendly tools to faster, more specialized libraries for large text corpora. It's a distinct application area combining string handling with statistical and sometimes machine learning techniques. + +Visit the following resources to learn more: + +- [@article@Natural Language Processing with R](https://s-ai-f.github.io/Natural-Language-Processing/) +- [@article@A Guide to Natural Language Processing with R](https://www.r-bloggers.com/2024/01/a-guide-to-natural-language-processing-with-r/) +- [@video@NLP in R Course](https://www.youtube.com/playlist?list=PLGey__rsxvBXNOv0Yq9jWcgo_iBH_Z9U_) +- [@video@Text Mining In R](https://www.youtube.com/watch?v=m8r7WtZ0voQ) \ No newline at end of file diff --git a/roadmaps/r-programming/content/numeric@dewpbYpun6Nho0ErI3rv-.md b/roadmaps/r-programming/content/numeric@dewpbYpun6Nho0ErI3rv-.md new file mode 100644 index 000000000..47af9ce32 --- /dev/null +++ b/roadmaps/r-programming/content/numeric@dewpbYpun6Nho0ErI3rv-.md @@ -0,0 +1,8 @@ +# Numeric + +Numeric is R's default type for numbers with decimal points, such as `3.14` or `2.0`, stored internally as double-precision floating point values. Almost all arithmetic in R produces numeric results unless you explicitly ask for integers. This is the type used for the vast majority of everyday calculations. + +Visit the following resources to learn more: + +- [@article@Numerics](https://www.w3schools.com/r/r_numbers.asp) +- [@article@Numeric Types](https://statsandr.com/blog/data-types-in-r/#numeric) \ No newline at end of file diff --git a/roadmaps/r-programming/content/operators@3d540CG_Ye7vvIFQKmiPb.md b/roadmaps/r-programming/content/operators@3d540CG_Ye7vvIFQKmiPb.md new file mode 100644 index 000000000..0aeb97939 --- /dev/null +++ b/roadmaps/r-programming/content/operators@3d540CG_Ye7vvIFQKmiPb.md @@ -0,0 +1,8 @@ +# Operators + +Arithmetic operators handle basic math, like `+`, `-`, `*`, and `/`. Relational operators compare values and return a logical result, like `==` and `<`. Logical operators combine or invert logical values, using `&` and `|` for element-wise comparisons. These form the backbone of nearly every calculation and condition you write in R. + +Visit the following resources to learn more: + +- [@article@R Operators](https://www.w3schools.com/r/r_operators.asp) +- [@video@Operators in R | R for Data Analytics Series](https://www.youtube.com/watch?v=O5nQKzBb0oc) \ No newline at end of file diff --git a/roadmaps/r-programming/content/overplotting-techniques@1b3AiO9i3pgkglwGeHiqd.md b/roadmaps/r-programming/content/overplotting-techniques@1b3AiO9i3pgkglwGeHiqd.md new file mode 100644 index 000000000..f06ee18b6 --- /dev/null +++ b/roadmaps/r-programming/content/overplotting-techniques@1b3AiO9i3pgkglwGeHiqd.md @@ -0,0 +1,8 @@ +# Overplotting Techniques + +Overplotting happens when too many data points overlap on a plot, making it hard to see the true density or pattern, especially common with large datasets. Jittering adds small random noise to point positions to spread out overlapping points slightly. Transparency, adjusted through the alpha setting, lets overlapping points show through each other rather than fully obscuring one another. + +Visit the following resources to learn more: + +- [@article@Dealing with overplotting](https://bookdown.dongzhuoer.com/hadley/ggplot2-book/overplotting) +- [@video@Overplotting - Data Analysis with R](https://www.youtube.com/watch?v=DlDQLxYRB4w) \ No newline at end of file diff --git a/roadmaps/r-programming/content/pak@j1jq5_64lBuYQQjJWKIuI.md b/roadmaps/r-programming/content/pak@j1jq5_64lBuYQQjJWKIuI.md new file mode 100644 index 000000000..8375569d8 --- /dev/null +++ b/roadmaps/r-programming/content/pak@j1jq5_64lBuYQQjJWKIuI.md @@ -0,0 +1,8 @@ +# pak + +pak is a newer package installer for R designed to replace `install.packages()` with something faster and more reliable. It parallelizes downloads, caches packages locally so reinstalls are quicker, and gives clearer error messages when a dependency conflict occurs. Many R developers now use it as their default installer instead of base R's built-in function. + +Visit the following resources to learn more: + +- [@official@pak](https://pak.r-lib.org/) +- [@opensource@pak](https://github.com/r-lib/pak) \ No newline at end of file diff --git a/roadmaps/r-programming/content/parallel-computing@ApowKoA3C1B8oUr4-sltZ.md b/roadmaps/r-programming/content/parallel-computing@ApowKoA3C1B8oUr4-sltZ.md new file mode 100644 index 000000000..2f648dc55 --- /dev/null +++ b/roadmaps/r-programming/content/parallel-computing@ApowKoA3C1B8oUr4-sltZ.md @@ -0,0 +1,9 @@ +# Parallel Computing + +Parallel computing splits a computational task across multiple processor cores at once, rather than running everything sequentially, cutting the total time for tasks that can be broken into independent pieces. R provides tools like the parallel package's `parLapply()` for distributing work across a cluster of R processes. Not every task benefits from this, since the overhead of splitting work and combining results can outweigh the benefit for small or fast tasks. + +Visit the following resources to learn more: + +- [@article@Parallel Computation](https://bookdown.org/rdpeng/rprogdatascience/parallel-computation.html) +- [@article@Quick Intro to Parallel Computing in R](https://nceas.github.io/oss-lessons/parallel-computing-in-r/parallel-computing-in-r.html) +- [@video@Parallel Computing in R](https://www.youtube.com/watch?v=_5hXQPTW-wU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/parsing-dates@L7btVRwvkEVX0K8LxnbqJ.md b/roadmaps/r-programming/content/parsing-dates@L7btVRwvkEVX0K8LxnbqJ.md new file mode 100644 index 000000000..33c897010 --- /dev/null +++ b/roadmaps/r-programming/content/parsing-dates@L7btVRwvkEVX0K8LxnbqJ.md @@ -0,0 +1,10 @@ +# Parsing Dates + +Parsing dates handles the extra complexity of date formats, since something like "01/02/2024" could mean different things depending on locale conventions. Getting the format specification right, or using a package like lubridate that guesses common formats automatically, avoids silently misreading dates. This matters especially when working with data from different countries or systems that don't agree on date conventions. + +Visit the following resources to learn more: + +- [@article@Mastering Date and Time Data in R with lubridate](https://www.r-bloggers.com/2024/09/mastering-date-and-time-data-in-r-with-lubridate/) +- [@article@parse_date: Parse date from any format](https://www.rdocumentation.org/packages/parsedate/versions/1.3.2/topics/parse_date) +- [@video@Lubridate - how to manipulate date and time data in R](https://www.youtube.com/watch?v=g4JF_Ew8qEc) +- [@video@Standardizing and Parsing Dates in R using Lubridate](https://www.youtube.com/watch?v=v5jasYkmwZI) \ No newline at end of file diff --git a/roadmaps/r-programming/content/pipe@0K17RO_EoOaT820WypQ7H.md b/roadmaps/r-programming/content/pipe@0K17RO_EoOaT820WypQ7H.md new file mode 100644 index 000000000..347fe4eb9 --- /dev/null +++ b/roadmaps/r-programming/content/pipe@0K17RO_EoOaT820WypQ7H.md @@ -0,0 +1,9 @@ +# Pipe + +The pipe operator takes the result on its left and passes it as the first argument to the function on its right, letting you chain several operations in a readable, top-to-bottom sequence. R now has two common versions: the native pipe `|>`, built into base R since version 4.1, and the older magrittr pipe `%>%`, which predates it and is still common in existing code. Writing `data |> filter(x > 0) |> summarize(mean(x))` reads as a sequence of steps rather than a nested jumble of function calls. + +Visit the following resources to learn more: + +- [@article@R Pipe Operator: %\>% vs |\>, The Complete Guide to Both Pipes](https://r-statistics.co/R-Pipe-Operator.html) +- [@video@Finally Explained: The Difference Between R's Pipe Operators](https://www.youtube.com/watch?v=uIL9gMjn40Y) +- [@video@Introducing the Pipe Operator in R](https://www.youtube.com/watch?v=Stt3qEuIeso) \ No newline at end of file diff --git a/roadmaps/r-programming/content/plotly@XPr7td4S8xpFxG5IkWvyz.md b/roadmaps/r-programming/content/plotly@XPr7td4S8xpFxG5IkWvyz.md new file mode 100644 index 000000000..a9341b52f --- /dev/null +++ b/roadmaps/r-programming/content/plotly@XPr7td4S8xpFxG5IkWvyz.md @@ -0,0 +1,10 @@ +# plotly + +plotly creates interactive charts that let viewers hover, zoom, and filter directly in the browser. It can convert many existing ggplot2 plots into interactive versions with a single function call, or build interactive charts directly with its own syntax. It's the most common package in R for adding this kind of interactivity to a plot. + +Visit the following resources to learn more: + +- [@official@Getting Started](https://plotly.com/r/getting-started/) +- [@official@Getting Started with Plotly in ggplot2](https://plotly.com/ggplot2/getting-started/) +- [@opensource@plotly.R](https://github.com/plotly/plotly.R) +- [@video@R Plotly Tutorial | Plotly in R](https://www.youtube.com/playlist?list=PL6wLL_RojB5y747hFeeYME5nZq2cuaR7E) \ No newline at end of file diff --git a/roadmaps/r-programming/content/positron@2m8uQRGaVZUd4mfm7bRou.md b/roadmaps/r-programming/content/positron@2m8uQRGaVZUd4mfm7bRou.md new file mode 100644 index 000000000..e5e257708 --- /dev/null +++ b/roadmaps/r-programming/content/positron@2m8uQRGaVZUd4mfm7bRou.md @@ -0,0 +1,9 @@ +# Positron + +Positron is a newer IDE from Posit, built on the same underlying technology as VS Code but tailored for data science work in R and Python. It combines a modern, extensible editor with the data-focused features R users expect, like a variables pane and integrated plots. It's becoming the default recommendation for new R and data science setups. + +Visit the following resources to learn more: + +- [@official@Positron](https://positron.posit.co/) +- [@official@Exploratory Data Analysis with R in Positron](https://posit.co/blog/eda-in-positron) +- [@video@A quick tour of Positron](https://www.youtube.com/watch?v=4Ir_HX4riHw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/power-bi--tableau@EHVXO79NGpLC1i8x4Y7g1.md b/roadmaps/r-programming/content/power-bi--tableau@EHVXO79NGpLC1i8x4Y7g1.md new file mode 100644 index 000000000..461283dfe --- /dev/null +++ b/roadmaps/r-programming/content/power-bi--tableau@EHVXO79NGpLC1i8x4Y7g1.md @@ -0,0 +1,10 @@ +# Power BI / Tableau + +Power BI and Tableau are business intelligence tools for building dashboards, connecting to data sources and creating interactive visualizations largely through a visual interface rather than code. R can connect to both, either as a data source feeding into them or, in Power BI's case, running R scripts directly inside the tool for custom visuals or calculations. They're common in organizations where dashboards need to be shared with non-technical stakeholders through a standard business tool. + +Visit the following resources to learn more: + +- [@article@Connecting Tableau](https://help.tableau.com/current/pro/desktop/en-us/r_connection_manage.htm) +- [@article@Create Power BI visuals using R](https://learn.microsoft.com/en-us/power-bi/create-reports/desktop-r-visuals) +- [@video@Intro to R with Power BI](https://www.youtube.com/watch?v=NomSliJK3s4) +- [@video@Tableau with Python and R](https://www.youtube.com/watch?v=BRAp08PrTTI) \ No newline at end of file diff --git a/roadmaps/r-programming/content/probability-distributions@wSKItU0lct_9CCs4G4JO_.md b/roadmaps/r-programming/content/probability-distributions@wSKItU0lct_9CCs4G4JO_.md new file mode 100644 index 000000000..452b5913e --- /dev/null +++ b/roadmaps/r-programming/content/probability-distributions@wSKItU0lct_9CCs4G4JO_.md @@ -0,0 +1,10 @@ +# Probability Distributions + +A probability distribution describes how likely different outcomes are for a random variable, such as the normal distribution or the binomial distribution for counting successes in repeated trials. R provides functions for common distributions following a consistent naming pattern: `d` for density, `p` for cumulative probability, `q` for quantiles, and `r` for random generation. Understanding which distribution reasonably describes your data underlies many statistical tests and models. + +Visit the following resources to learn more: + +- [@article@Probability Distributions in R (Stat 5101, Geyer)](https://www.stat.umn.edu/geyer/old/5101/rlook.html) +- [@article@Basic Probability Distributions in R](https://rpubs.com/ggraham412/100906) +- [@video@Probability Distributions with R](https://www.youtube.com/playlist?list=PL2czy8u8hfA19CClwzdbEJEG6jccbV0JB) +- [@video@Introduction to R: Probability Distributions](https://www.youtube.com/watch?v=Rxe086csxTU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/purrr@KXvrYvFvyAqFbJeS1KHRi.md b/roadmaps/r-programming/content/purrr@KXvrYvFvyAqFbJeS1KHRi.md new file mode 100644 index 000000000..238f6117d --- /dev/null +++ b/roadmaps/r-programming/content/purrr@KXvrYvFvyAqFbJeS1KHRi.md @@ -0,0 +1,10 @@ +# purrr + +purrr applies a function to each element of a list or vector and collects the results, similar in spirit to base R's apply family but with more consistent, predictable behavior. Its `map()` function always returns a list, while variants like `map_dbl()` return a vector of a specific type, making the expected output explicit. It fits naturally with the pipe operator and tidyverse style, letting you iterate without writing explicit loops. + +Visit the following resources to learn more: + +- [@official@Get started with purrr](https://purrr.tidyverse.org/articles/purrr.html) +- [@article@Learn to purrr](https://rebeccabarter.com/blog/2019-08-19_purrr) +- [@video@How to purrr](https://www.youtube.com/watch?v=nd-Y8b22YaQ) +- [@video@Hadley Wickham | {purrr}](https://www.youtube.com/watch?v=EGAs7zuRutY&t=11s) \ No newline at end of file diff --git a/roadmaps/r-programming/content/quanteda@gUpA_YtWlToGs-OJZZDpV.md b/roadmaps/r-programming/content/quanteda@gUpA_YtWlToGs-OJZZDpV.md new file mode 100644 index 000000000..a1ef8b6d1 --- /dev/null +++ b/roadmaps/r-programming/content/quanteda@gUpA_YtWlToGs-OJZZDpV.md @@ -0,0 +1,9 @@ +# quanteda + +quanteda is a faster, more powerful text analysis package built for working with large corpora of documents, offering more advanced features than tidytext for tasks like document-feature matrices and topic modeling. It trades some of tidytext's tidyverse-native simplicity for more performance and specialized functionality. It's typically reached for once text analysis needs outgrow what tidytext comfortably handles. + +Visit the following resources to learn more: + +- [@official@quanteda: Quantitative Analysis of Textual Data](https://quanteda.io/) +- [@opensource@quanteda](https://github.com/quanteda/quanteda) +- [@video@Quanteda-1. Introduction to R-package Quanteda](https://www.youtube.com/watch?v=ypMODS_onn0) \ No newline at end of file diff --git a/roadmaps/r-programming/content/quarto@SnLNFoVZhL6YuE9QOLpAl.md b/roadmaps/r-programming/content/quarto@SnLNFoVZhL6YuE9QOLpAl.md new file mode 100644 index 000000000..763280c50 --- /dev/null +++ b/roadmaps/r-programming/content/quarto@SnLNFoVZhL6YuE9QOLpAl.md @@ -0,0 +1,10 @@ +# Quarto + +Quarto is a publishing system that renders documents combining text, code, and code output into formats like HTML, PDF, or Word. It works across multiple languages, including R, Python, and Julia, and is positioned as the modern successor to R Markdown. Posit actively develops and promotes it as the current default for literate programming in R. + +Visit the following resources to learn more: + +- [@official@Quarto](https://quarto.org/) +- [@official@Quarto for R](https://quarto.org/docs/computations/r.html) +- [@official@Tutorial: Hello, Quarto](https://quarto.org/docs/get-started/hello/rstudio.html) +- [@video@Quarto crash course - what you can do with quarto](https://www.youtube.com/watch?v=oYV1a9sWhgM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/r-dates--times@1X3RbJPY_GbIDarcO2UDL.md b/roadmaps/r-programming/content/r-dates--times@1X3RbJPY_GbIDarcO2UDL.md new file mode 100644 index 000000000..5c2284dd5 --- /dev/null +++ b/roadmaps/r-programming/content/r-dates--times@1X3RbJPY_GbIDarcO2UDL.md @@ -0,0 +1,10 @@ +# R Dates & Times + +Base R represents dates and times using specific classes: `Date` for calendar dates and `POSIXct` for date-times that include a time component. These classes let you do arithmetic directly, like subtracting two dates to get the number of days between them. Parsing dates correctly requires knowing the format they were written in, since ambiguous formats can be misread. + +Visit the following resources to learn more: + +- [@article@Dates and times](https://r4ds.hadley.nz/datetimes.html) +- [@article@A Comprehensive Introduction to Handling Date & Time in R](https://www.r-bloggers.com/2020/04/a-comprehensive-introduction-to-handling-date-time-in-r/) +- [@article@Working with dates](https://epirhandbook.com/en/new_pages/dates.html) +- [@video@Difference Between Dates in R](https://www.youtube.com/watch?v=rH8l2FOGUbM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/r-markdown@PDZEvLgi94V5oLt3J5U9Z.md b/roadmaps/r-programming/content/r-markdown@PDZEvLgi94V5oLt3J5U9Z.md new file mode 100644 index 000000000..12d6d9b4a --- /dev/null +++ b/roadmaps/r-programming/content/r-markdown@PDZEvLgi94V5oLt3J5U9Z.md @@ -0,0 +1,10 @@ +# R Markdown + +R Markdown documents mix Markdown-formatted text with chunks of R code, rendering into HTML, PDF, or Word output with the code's results embedded directly. It predates Quarto and was the standard tool for this kind of work for many years, so a large amount of existing documentation and tutorials still use it. Quarto has since become the recommended tool for new projects, but R Markdown remains fully functional and widely used. + +Visit the following resources to learn more: + +- [@official@R Markdown](https://rmarkdown.rstudio.com/) +- [@video@R Markdown: The Definitive Guide](https://pkg.yihui.org/rmarkdown-book/) +- [@video@What is R Markdown?](https://www.youtube.com/watch?v=asHhuHRxhvo) +- [@video@R Markdown TUTORIAL](https://www.youtube.com/watch?v=K418swtFnik) \ No newline at end of file diff --git a/roadmaps/r-programming/content/r-vs-python@O3lbX70fDeKsv9fkJJtYv.md b/roadmaps/r-programming/content/r-vs-python@O3lbX70fDeKsv9fkJJtYv.md new file mode 100644 index 000000000..f73ad19d2 --- /dev/null +++ b/roadmaps/r-programming/content/r-vs-python@O3lbX70fDeKsv9fkJJtYv.md @@ -0,0 +1,10 @@ +# R vs Python for Data Work + +R and Python solve overlapping problems but come from different roots. R grew out of statistics departments, so its core language and packages treat data frames, vectors, and statistical models as first-class citizens. Python grew as a general-purpose language, so its data tools (pandas, NumPy) were added on top of a language built for other things. In practice, R tends to win for statistical modeling, academic research, and quick exploratory analysis, while Python wins for production software, deep learning, and general-purpose scripting. + +Visit the following resources to learn more: + +- [@roadmap@Visit the Dedicated Python For Data Analysis Roadmap](https://roadmap.sh/python-data-analysis) +- [@article@Python vs. R: What’s the Difference?](https://www.ibm.com/think/topics/python-vs-r) +- [@article@Python or R for Data Analysis: Which Should You Learn?](https://www.coursera.org/articles/python-or-r-for-data-analysis) +- [@video@R vs Python](https://www.youtube.com/watch?v=4lcwTGA7MZw&t=171s) \ No newline at end of file diff --git a/roadmaps/r-programming/content/readr@y0yMev6QSHjqd1YJ9Y05Z.md b/roadmaps/r-programming/content/readr@y0yMev6QSHjqd1YJ9Y05Z.md new file mode 100644 index 000000000..8b35425c5 --- /dev/null +++ b/roadmaps/r-programming/content/readr@y0yMev6QSHjqd1YJ9Y05Z.md @@ -0,0 +1,9 @@ +# readr + +readr provides fast, consistent functions for reading flat files like CSVs into R, such as `read_csv()`, as an improvement over base R's equivalent functions. It handles more edge cases well, like inconsistent column types or unusual encodings, and gives clearer feedback about how it parsed each column. It's typically the first tool reached for when loading tabular data into R. + +Visit the following resources to learn more: + +- [@official@Introduction to readr](https://readr.tidyverse.org/articles/readr.html) +- [@article@Importing Data into R with readr](https://ehsanx.github.io/intro2R/importing-data-into-r-with-readr.html) +- [@video@How to handle large files with R using {readr} 2.0](https://www.youtube.com/watch?v=Qby_dGxEQE4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/recursion@VdtQNeFL8vnaHHzW6CWds.md b/roadmaps/r-programming/content/recursion@VdtQNeFL8vnaHHzW6CWds.md new file mode 100644 index 000000000..673606b61 --- /dev/null +++ b/roadmaps/r-programming/content/recursion@VdtQNeFL8vnaHHzW6CWds.md @@ -0,0 +1,7 @@ +# Recursion + +Recursion is when a function calls itself, typically to break a problem into smaller versions of the same problem until it reaches a simple base case. A classic example is calculating a factorial by having the function call itself with a smaller number each time. Recursive functions need a clear stopping condition, or they will call themselves indefinitely and crash. + +Visit the following resources to learn more: + +- [@article@R recursion](https://www.w3schools.com/r/r_functions_recursion.asp) \ No newline at end of file diff --git a/roadmaps/r-programming/content/regular-expressions@feXXBBD1J5TEllq2zbCUZ.md b/roadmaps/r-programming/content/regular-expressions@feXXBBD1J5TEllq2zbCUZ.md new file mode 100644 index 000000000..bde94fae5 --- /dev/null +++ b/roadmaps/r-programming/content/regular-expressions@feXXBBD1J5TEllq2zbCUZ.md @@ -0,0 +1,10 @@ +# Regular Expressions + +Regular expressions are a pattern-matching language for describing sequences of characters, used to search, validate, or extract specific pieces of text. A pattern like `^\d{3}-\d{4}$` might describe a phone number format, matching only text that fits that exact shape. They take practice to read fluently, but solve text problems that simple string functions alone can't handle efficiently. + +Visit the following resources to learn more: + +- [@article@Regular expressions in R](https://r4ds.hadley.nz/regexps.html) +- [@article@Regular expressions](https://stringr.tidyverse.org/articles/regular-expressions.html) +- [@video@Finally Understand Regular Expressions](https://www.youtube.com/watch?v=IzBk58Eorr4) +- [@video@Regular Expressions in R language (With Examples)](https://www.youtube.com/watch?v=2XkFY3K3NWE) \ No newline at end of file diff --git a/roadmaps/r-programming/content/relationship-analysis@hS12KA72tBNmVvS921-H-.md b/roadmaps/r-programming/content/relationship-analysis@hS12KA72tBNmVvS921-H-.md new file mode 100644 index 000000000..9c585cdf1 --- /dev/null +++ b/roadmaps/r-programming/content/relationship-analysis@hS12KA72tBNmVvS921-H-.md @@ -0,0 +1,10 @@ +# Relationship Analysis + +Relationship analysis examines how two or more variables relate to each other, using tools like scatterplots for two numeric variables, correlation matrices for many numeric variables at once, and cross-tabulation for categorical variables. This is usually the second step in exploratory analysis, after looking at variables individually. It often surfaces the patterns that later motivate a specific statistical model. + +Visit the following resources to learn more: + +- [@article@Correlation coefficient and correlation test in R](https://statsandr.com/blog/correlation-coefficient-and-correlation-test-in-r/) +- [@article@Correlation and Regression Analysis in R](https://bookdown.org/siju_swamy/Stat_Lab/correlation-and-regression-analysis-in-r.html) +- [@video@Correlation Analysis in R](https://www.youtube.com/watch?v=1Yyp8nbMX1k) +- [@video@How to use ggplot to create beautiful scatter plots.](https://www.youtube.com/watch?v=Dh7P5ExsYCg) \ No newline at end of file diff --git a/roadmaps/r-programming/content/renv@6dJaQRj2zMz00sfTiTdww.md b/roadmaps/r-programming/content/renv@6dJaQRj2zMz00sfTiTdww.md new file mode 100644 index 000000000..096153cb3 --- /dev/null +++ b/roadmaps/r-programming/content/renv@6dJaQRj2zMz00sfTiTdww.md @@ -0,0 +1,9 @@ +# renv + +renv manages package versions on a per-project basis instead of one shared library for your whole machine. It records the exact package versions a project uses in a lockfile, so anyone who opens that project later can restore the exact same environment. This solves the common problem where a script that worked months ago breaks because a package updated in a way that changed its behavior. + +Visit the following resources to learn more: + +- [@official@renv](https://cran.r-project.org/web/packages/renv/index.html) +- [@article@Introduction to renv](https://rstudio.github.io/renv/articles/renv.html) +- [@video@renv: How to create a stable environment and manage dependencies in R](https://www.youtube.com/watch?v=FWhjQrRZwRg) \ No newline at end of file diff --git a/roadmaps/r-programming/content/reshaping@cRgcpjX7GlMB_l3ARU1z4.md b/roadmaps/r-programming/content/reshaping@cRgcpjX7GlMB_l3ARU1z4.md new file mode 100644 index 000000000..1993021d1 --- /dev/null +++ b/roadmaps/r-programming/content/reshaping@cRgcpjX7GlMB_l3ARU1z4.md @@ -0,0 +1,9 @@ +# Reshaping + +Reshaping changes the layout of a dataset without changing its underlying content, most commonly converting between wide and long formats. Wide format spreads related values across separate columns, while long format stacks them into fewer columns with an extra column identifying what each value represents. Many statistical functions and plotting tools expect one shape or the other, so reshaping is often a necessary step before analysis. + +Visit the following resources to learn more: + +- [@article@Data Reshaping in R Tutorial](https://www.datacamp.com/tutorial/data-reshaping-in-r) +- [@article@R Data Reshaping](https://data-flair.training/blogs/r-data-reshaping-function-package/) +- [@video@Reshaping the Data in R](https://www.youtube.com/watch?v=Dc5MtA3Yej0) \ No newline at end of file diff --git a/roadmaps/r-programming/content/rstatix@-9C077yNLTXLbEo0TW1zU.md b/roadmaps/r-programming/content/rstatix@-9C077yNLTXLbEo0TW1zU.md new file mode 100644 index 000000000..e6a23c7db --- /dev/null +++ b/roadmaps/r-programming/content/rstatix@-9C077yNLTXLbEo0TW1zU.md @@ -0,0 +1,7 @@ +# rstatix + +rstatix provides a tidyverse-friendly interface for common statistical tests, wrapping base R functions like `t.test()` and `aov()` in a syntax that fits naturally into a dplyr pipeline. It returns results as tidy data frames rather than the more complex object types base R statistical functions typically produce, making the output easier to filter, combine, or feed into a plot. It's a popular choice for anyone who wants classical statistical tests without leaving the tidyverse workflow. + +Visit the following resources to learn more: + +- [@article@rstatix guide](https://kassambara.r-universe.dev/rstatix) \ No newline at end of file diff --git a/roadmaps/r-programming/content/rstudio@c8uLNJMr6UZfvjFwFhxvd.md b/roadmaps/r-programming/content/rstudio@c8uLNJMr6UZfvjFwFhxvd.md new file mode 100644 index 000000000..eccabc1df --- /dev/null +++ b/roadmaps/r-programming/content/rstudio@c8uLNJMr6UZfvjFwFhxvd.md @@ -0,0 +1,10 @@ +# RStudio + +RStudio is the most established integrated development environment for R, combining a script editor, console, plot viewer, and package tools in one window. It has deep, mature support for building R packages and rendering Quarto or R Markdown documents. Posit develops and maintains it, and much existing R documentation still assumes you're working in it. + +Visit the following resources to learn more: + +- [@official@RStudio IDE](https://posit.co/downloads) +- [@official@Installing R and RStudio](https://rstudio-education.github.io/hopr/starting.html) +- [@video@RStudio for beginners](https://www.youtube.com/watch?v=Kgwfuycn9_I) +- [@video@RStudio for the Total Beginner](https://www.youtube.com/watch?v=FIrsOBy5k58) \ No newline at end of file diff --git a/roadmaps/r-programming/content/sampling@U6vkyRtFatEi8oCm0zoIK.md b/roadmaps/r-programming/content/sampling@U6vkyRtFatEi8oCm0zoIK.md new file mode 100644 index 000000000..937810cbc --- /dev/null +++ b/roadmaps/r-programming/content/sampling@U6vkyRtFatEi8oCm0zoIK.md @@ -0,0 +1,9 @@ +# Sampling + +Sampling covers the different methods for selecting a subset of a population to study, when studying the entire population isn't feasible, including simple random, stratified, and cluster sampling. It also covers the mechanics of random number generation in R and setting a seed for reproducibility. The right sampling method depends on the structure of the population and what you need the sample to represent. + +Visit the following resources to learn more: + +- [@article@Sampling in R](https://ds4world.cs.miami.edu/sampling) +- [@article@Unleashing the Power of Sampling in R: Exploring the Versatile sample() Function](https://www.r-bloggers.com/2023/06/unleashing-the-power-of-sampling-in-r-exploring-the-versatile-sample-function/) +- [@video@How To... Select Random Samples in R #83](https://www.youtube.com/watch?v=JC3H6eU2jSw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/scopes@JWRELdQozts-p0448ILYf.md b/roadmaps/r-programming/content/scopes@JWRELdQozts-p0448ILYf.md new file mode 100644 index 000000000..27a6f7051 --- /dev/null +++ b/roadmaps/r-programming/content/scopes@JWRELdQozts-p0448ILYf.md @@ -0,0 +1,9 @@ +# Scopes + +Scoping determines which variables a function can see and use while it runs. R uses lexical scoping, meaning a function looks first inside itself, then in the environment where it was defined, not the environment where it was called from. Understanding scoping becomes especially important once you write nested functions or functions that return other functions. + +Visit the following resources to learn more: + +- [@article@Scoping Rules of R](https://bookdown.org/rdpeng/rprogdatascience/scoping-rules-of-r.html) +- [@article@Lexical scoping](https://adv-r.hadley.nz/functions.html) +- [@video@R Scoping Rules](https://www.youtube.com/watch?v=Xom1XXqiwV0) \ No newline at end of file diff --git a/roadmaps/r-programming/content/setting-up@6br2AmC31MvGURDUgNtl2.md b/roadmaps/r-programming/content/setting-up@6br2AmC31MvGURDUgNtl2.md new file mode 100644 index 000000000..abc51ae24 --- /dev/null +++ b/roadmaps/r-programming/content/setting-up@6br2AmC31MvGURDUgNtl2.md @@ -0,0 +1,3 @@ +# Setting Up + +Setting up R involves configuring the tools around the language itself: managing packages, choosing an IDE, and preparing ways to publish finished work. It's the practical groundwork that makes everyday R work smooth. \ No newline at end of file diff --git a/roadmaps/r-programming/content/sf@XP4ngNk1Fqzb2nxtHs3Ot.md b/roadmaps/r-programming/content/sf@XP4ngNk1Fqzb2nxtHs3Ot.md new file mode 100644 index 000000000..55682e9f3 --- /dev/null +++ b/roadmaps/r-programming/content/sf@XP4ngNk1Fqzb2nxtHs3Ot.md @@ -0,0 +1,9 @@ +# sf + +sf handles vector spatial data in R, representing points, lines, and polygons, such as store locations or country boundaries. It's built around simple features, a standard format for representing spatial data used across many GIS tools beyond just R. It's the modern standard for vector geospatial work in R, having replaced the older sp package. + +Visit the following resources to learn more: + +- [@article@Simple Features for R](https://r-spatial.github.io/sf/) +- [@article@Plot and manipulate geographic features with sf](https://r-graph-gallery.com/package/sf.html) +- [@video@Create maps using the sf package in R programming](https://www.youtube.com/watch?v=F0ZRYo4SUb8) \ No newline at end of file diff --git a/roadmaps/r-programming/content/shiny@pC_AC-yhn9qqL2HbIl8Yx.md b/roadmaps/r-programming/content/shiny@pC_AC-yhn9qqL2HbIl8Yx.md new file mode 100644 index 000000000..cb1df9c15 --- /dev/null +++ b/roadmaps/r-programming/content/shiny@pC_AC-yhn9qqL2HbIl8Yx.md @@ -0,0 +1,10 @@ +# Shiny + +Shiny is a framework for building interactive web applications directly in R, without needing to know HTML, CSS, or JavaScript. An app has two main parts: a UI defining what the user sees, and a server function defining how the app responds when the user interacts with those elements. This reactive model automatically updates outputs whenever their underlying inputs change. + +Visit the following resources to learn more: + +- [@official@Welcome to Shiny](https://shiny.posit.co/r/getstarted/shiny-basics/lesson1/) +- [@opensource@shiny](https://github.com/rstudio/shiny) +- [@article@Your first Shiny app](https://mastering-shiny.org/basic-app.html) +- [@video@R Shiny for Data Science Tutorial](https://www.youtube.com/watch?v=9uFQECk30kA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/sparklyr@XTXm8aIDbRkTXoAck_m3I.md b/roadmaps/r-programming/content/sparklyr@XTXm8aIDbRkTXoAck_m3I.md new file mode 100644 index 000000000..580b6bb6f --- /dev/null +++ b/roadmaps/r-programming/content/sparklyr@XTXm8aIDbRkTXoAck_m3I.md @@ -0,0 +1,9 @@ +# Sparklyr + +Sparklyr connects R to Apache Spark, a distributed computing framework built for processing datasets far too large to fit in memory on a single machine. It lets you write familiar dplyr syntax that gets translated into Spark operations running across a cluster of machines. It matters specifically once a dataset grows beyond what fits comfortably in a single machine's memory. + +Visit the following resources to learn more: + +- [@official@Sparklyr](https://spark.posit.co/) +- [@article@What is Sparklyr?](https://www.databricks.com/blog/what-is-sparklyr) +- [@video@Spark in R Masterclass | Featuring sparklyr & shiny](https://www.youtube.com/watch?v=rJawNrD3xlU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/statistical-analysis@MhJaZyfzuHGROihT8U7cY.md b/roadmaps/r-programming/content/statistical-analysis@MhJaZyfzuHGROihT8U7cY.md new file mode 100644 index 000000000..63d6c49be --- /dev/null +++ b/roadmaps/r-programming/content/statistical-analysis@MhJaZyfzuHGROihT8U7cY.md @@ -0,0 +1,9 @@ +# Statistical Analysis + +Statistical analysis uses classical techniques to summarize data, test hypotheses, and model relationships between variables. It forms the theoretical and methodological core underneath a lot of applied data work. + +Visit the following resources to learn more: + +- [@article@A Beginner's Guide to Statistical Analysis using RStudio](https://dev.to/up_min_sparcs/statistical-analysis-using-rstudio-3h7c) +- [@video@Statistics and Statistics with R Tutorials (All Videos) | MarinStatsLectures](https://www.youtube.com/playlist?list=PLqzoL9-eJTNBDdKgJgJzaQcY6OXmsXAHU) +- [@video@R programming for beginners – statistic with R](https://www.youtube.com/watch?v=ANMuuq502rE) \ No newline at end of file diff --git a/roadmaps/r-programming/content/stats@xgI4j0gkNkd3pqGmWkpmF.md b/roadmaps/r-programming/content/stats@xgI4j0gkNkd3pqGmWkpmF.md new file mode 100644 index 000000000..f37db246e --- /dev/null +++ b/roadmaps/r-programming/content/stats@xgI4j0gkNkd3pqGmWkpmF.md @@ -0,0 +1,8 @@ +# stats + +stats is the base R package that ships with every R installation, providing core statistical functions like `lm()` for regression, `t.test()` for hypothesis testing, and functions for common probability distributions. It requires no separate installation since it's part of base R itself. Many higher-level statistics packages build directly on functions from this package. + +Visit the following resources to learn more: + +- [@official@stats Docs](https://stat.ethz.ch/R-manual/R-devel/library/stats/html/00Index.html) +- [@article@stats Guide](https://r-universe.dev/manuals/stats.html) \ No newline at end of file diff --git a/roadmaps/r-programming/content/string-manipulation@swUTr8ZP72JnyP7UjfrHH.md b/roadmaps/r-programming/content/string-manipulation@swUTr8ZP72JnyP7UjfrHH.md new file mode 100644 index 000000000..6df197523 --- /dev/null +++ b/roadmaps/r-programming/content/string-manipulation@swUTr8ZP72JnyP7UjfrHH.md @@ -0,0 +1,8 @@ +# String Manipulation + +String manipulation covers searching, extracting, replacing, and combining text values, most commonly using the stringr package's consistent `str_` functions. Text data shows up constantly in real datasets: names, categories, free-text responses. Getting comfortable with these operations resolves a large share of everyday data cleaning problems. + +Visit the following resources to learn more: + +- [@article@Strings Tutorial](https://r4ds.had.co.nz/strings.html) +- [@video@String Manipulation with stringr](https://www.youtube.com/watch?v=QKKyV2FpFLA) \ No newline at end of file diff --git a/roadmaps/r-programming/content/stringr@P_u3uSVm63KsmQRWdvBmr.md b/roadmaps/r-programming/content/stringr@P_u3uSVm63KsmQRWdvBmr.md new file mode 100644 index 000000000..39e432b7b --- /dev/null +++ b/roadmaps/r-programming/content/stringr@P_u3uSVm63KsmQRWdvBmr.md @@ -0,0 +1,9 @@ +# stringr + +stringr provides a consistent, well-documented set of functions for working with text, covering tasks like detecting patterns, extracting substrings, and combining strings. Every function follows a consistent naming pattern starting with `str_`, such as `str_detect()` or `str_replace()`, making the package easier to learn than base R's more scattered string functions. It's the standard tool for text-heavy cleaning and manipulation in modern R code. + +Visit the following resources to learn more: + +- [@official@Introduction to stringr](https://stringr.tidyverse.org/articles/stringr.html) +- [@article@String Manipulation with Stringr](https://www.r-bloggers.com/2021/02/string-manipulation-with-stringr/) +- [@video@R Split Data Frame Variable into Multiple Columns](https://www.youtube.com/watch?v=xrrWLKRfZWY&list=PLu6UwBFCnlEcz07b8igt-KbXieC1ZsgCB) \ No newline at end of file diff --git a/roadmaps/r-programming/content/strings-and-dates@akoMThJHZLC3vFk_zB-S1.md b/roadmaps/r-programming/content/strings-and-dates@akoMThJHZLC3vFk_zB-S1.md new file mode 100644 index 000000000..05726763d --- /dev/null +++ b/roadmaps/r-programming/content/strings-and-dates@akoMThJHZLC3vFk_zB-S1.md @@ -0,0 +1,10 @@ +# Strings and Dates + +Text and date or time values are two of the most common sources of messy, inconsistently formatted data in real datasets. Getting comfortable handling both pays off across nearly every other part of analysis. + +Visit the following resources to learn more: + +- [@article@Strings in R](https://r4ds.had.co.nz/strings.html) +- [@article@A Comprehensive Introduction to Handling Date & Time in R](https://www.r-bloggers.com/2020/04/a-comprehensive-introduction-to-handling-date-time-in-r/) +- [@video@String Manipulation with stringr](https://www.youtube.com/watch?v=QKKyV2FpFLA&t=325s) +- [@video@Difference Between Dates in R](https://www.youtube.com/watch?v=rH8l2FOGUbM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/strip-replace-split@S1EzGF-CLu7tWDb1V6RQc.md b/roadmaps/r-programming/content/strip-replace-split@S1EzGF-CLu7tWDb1V6RQc.md new file mode 100644 index 000000000..80c807e83 --- /dev/null +++ b/roadmaps/r-programming/content/strip-replace-split@S1EzGF-CLu7tWDb1V6RQc.md @@ -0,0 +1,9 @@ +# strip, replace, split + +Stripping removes leading or trailing whitespace from text, replacing swaps out unwanted characters or patterns for something else, and splitting breaks a single string into multiple parts based on a delimiter. These are usually among the first steps in cleaning any dataset with free-text or inconsistently formatted columns. The stringr package provides consistent functions for all three operations. + +Visit the following resources to learn more: + +- [@article@How to Split Text Strings in Displayr Using R](https://help.displayr.com/hc/en-us/articles/360004086176-How-to-Split-Text-Strings-in-Displayr-Using-R) +- [@article@Replace matches with new text](https://stringr.tidyverse.org/reference/str_replace.html) +- [@article@How to Remove Characters from String in R (3 Examples)](https://www.statology.org/r-remove-character-from-string/) \ No newline at end of file diff --git a/roadmaps/r-programming/content/summary-statistics@AvzZ6SxNvGCuq9cX_O6op.md b/roadmaps/r-programming/content/summary-statistics@AvzZ6SxNvGCuq9cX_O6op.md new file mode 100644 index 000000000..a5bb1ef91 --- /dev/null +++ b/roadmaps/r-programming/content/summary-statistics@AvzZ6SxNvGCuq9cX_O6op.md @@ -0,0 +1,9 @@ +# Summary Statistics + +Summary statistics condense a column of data down to a few representative numbers, like the mean, median, and standard deviation. They form the foundation for almost every deeper statistical technique, since you need to understand a variable's basic behavior before modeling relationships involving it. Calculating these is usually the first step in getting a feel for any new dataset. + +Visit the following resources to learn more: + +- [@article@Descriptive statistics in R](https://statsandr.com/blog/descriptive-statistics-in-r/) +- [@article@Understanding R’s describe() Function: A Complete Guide to Summary Statistics](https://www.r-bloggers.com/2026/04/understanding-rs-describe-function-a-complete-guide-to-summary-statistics/) +- [@video@Basic summary statistics in R](https://www.youtube.com/watch?v=MtiGnSZGSQs) \ No newline at end of file diff --git a/roadmaps/r-programming/content/terra@UphqgVEpeVfM8mCVKpE-s.md b/roadmaps/r-programming/content/terra@UphqgVEpeVfM8mCVKpE-s.md new file mode 100644 index 000000000..ef225eb1e --- /dev/null +++ b/roadmaps/r-programming/content/terra@UphqgVEpeVfM8mCVKpE-s.md @@ -0,0 +1,9 @@ +# terra + +terra handles raster data in R, grids of values like satellite imagery or elevation data, and has replaced the older, now retired raster package. It provides functions for reading, manipulating, and analyzing raster layers, including operations like resampling and calculating values across a grid. It's the standard modern choice for raster work in R. + +Visit the following resources to learn more: + +- [@official@terra](https://rspatial.github.io/terra/) +- [@article@terra guide](https://rspatial.r-universe.dev/terra) +- [@video@Using R in Terra](https://www.youtube.com/watch?v=MHkLwATIchk) \ No newline at end of file diff --git a/roadmaps/r-programming/content/text@1BCWaI0i01gzwo539I90D.md b/roadmaps/r-programming/content/text@1BCWaI0i01gzwo539I90D.md new file mode 100644 index 000000000..410a3f3b7 --- /dev/null +++ b/roadmaps/r-programming/content/text@1BCWaI0i01gzwo539I90D.md @@ -0,0 +1,9 @@ +# Text + +Plain text files store unstructured or loosely structured data without the strict comma or tab delimiters of a CSV or TSV file. Reading them into R might mean reading line by line for further parsing, or using a delimiter-aware function if the text has some consistent structure like tab separation. This is a common starting point for log files, raw scraped content, or data that doesn't fit neatly into a standard tabular format. + +Visit the following resources to learn more: + +- [@article@Reading Text Data in R](https://users.ssc.wisc.edu/~dehemken/Rworkshops/dwr/reading-text-data.html) +- [@article@Read CSV & Text Files in R: read.csv & readr](https://www.datanovia.com/learn/programming/importing-exporting-data/read-csv-txt-in-r) +- [@video@Read TXT File with Spaces as Delimiter in R](https://www.youtube.com/watch?v=Hz8RTaFmQSU) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tibble@3PBGqxsWI3K6vpB9PtteC.md b/roadmaps/r-programming/content/tibble@3PBGqxsWI3K6vpB9PtteC.md new file mode 100644 index 000000000..18eaaf06b --- /dev/null +++ b/roadmaps/r-programming/content/tibble@3PBGqxsWI3K6vpB9PtteC.md @@ -0,0 +1,9 @@ +# tibble + +tibble is the tidyverse package that defines and supports the tibble data structure, a modern variant of the data frame. It provides functions for creating tibbles directly, converting existing data frames into tibbles, and controlling how they print in the console. Most other tidyverse packages return tibbles by default, relying on this package underneath. + +Visit the following resources to learn more: + +- [@official@tibble](https://tibble.tidyverse.org/) +- [@article@Tibbles Intro](https://r4ds.had.co.nz/tibbles.html) +- [@video@Extract Column of Tibble in R](https://www.youtube.com/watch?v=8g-7gCLSMrQ&list=PLu6UwBFCnlEc2m689k42f0bXLX7rUfOJv) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tibbles@4LSIcQnzj3V5mStHIYP-O.md b/roadmaps/r-programming/content/tibbles@4LSIcQnzj3V5mStHIYP-O.md new file mode 100644 index 000000000..179d64d75 --- /dev/null +++ b/roadmaps/r-programming/content/tibbles@4LSIcQnzj3V5mStHIYP-O.md @@ -0,0 +1,9 @@ +# Tibbles + +A tibble is a modern variant of the data frame, introduced by the tidyverse, with a few behavioral differences designed to reduce surprises. Tibbles print more usefully in the console, showing only what fits on screen along with each column's type, and they refuse to silently drop dimensions the way base data frames sometimes do. Most tidyverse functions return tibbles by default rather than base data frames. + +Visit the following resources to learn more: + +- [@official@Tibble](https://tibble.tidyverse.org/) +- [@article@Tibbles](https://r4ds.had.co.nz/tibbles.html) +- [@video@Tibble in R](https://www.youtube.com/playlist?list=PLu6UwBFCnlEc2m689k42f0bXLX7rUfOJv) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tidygraph@_VJmd1wv2UJcLpQKnmjjK.md b/roadmaps/r-programming/content/tidygraph@_VJmd1wv2UJcLpQKnmjjK.md new file mode 100644 index 000000000..cb89a0c90 --- /dev/null +++ b/roadmaps/r-programming/content/tidygraph@_VJmd1wv2UJcLpQKnmjjK.md @@ -0,0 +1,9 @@ +# tidygraph + +tidygraph applies tidyverse conventions to network data, letting you manipulate graph nodes and edges using familiar dplyr-style verbs instead of igraph's more specialized syntax. It works alongside ggraph for visualization, together forming a tidyverse-native alternative to working with igraph directly. It's often preferred by users already comfortable with the tidyverse who want that same syntax applied to network data. + +Visit the following resources to learn more: + +- [@official@tidygraph](https://tidygraph.data-imaginist.com/) +- [@article@Tidy Network Analysis in R](https://schochastics.github.io/tidynetAnaR/) +- [@video@Making network graphs in R - ggraph and tidygraph introduction](https://www.youtube.com/watch?v=geYZ83Aidq4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tidymodels@23bhr8zcXaTgjiAa7z_Pn.md b/roadmaps/r-programming/content/tidymodels@23bhr8zcXaTgjiAa7z_Pn.md new file mode 100644 index 000000000..6902f89af --- /dev/null +++ b/roadmaps/r-programming/content/tidymodels@23bhr8zcXaTgjiAa7z_Pn.md @@ -0,0 +1,9 @@ +# tidymodels + +tidymodels is a collection of R packages for building and evaluating machine learning models, designed to follow tidyverse conventions and work well with the pipe operator. It splits modeling into distinct, composable steps: preprocessing, specifying a model, fitting it, and evaluating results, each handled by a different package within the collection. It has become the standard modern framework for machine learning in R. + +Visit the following resources to learn more: + +- [@book@Tidy Modeling with R](https://www.tmwr.org/) +- [@official@Getting Started](https://www.tidymodels.org/start/) +- [@video@TIDYMODELS](https://www.youtube.com/playlist?list=PLdYLMZa8u9JN8BXKGOCtT7v3CLxT8gmsh) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tidyr@axtup-_HtUjM2Ft3J1Sxb.md b/roadmaps/r-programming/content/tidyr@axtup-_HtUjM2Ft3J1Sxb.md new file mode 100644 index 000000000..cfffeac6b --- /dev/null +++ b/roadmaps/r-programming/content/tidyr@axtup-_HtUjM2Ft3J1Sxb.md @@ -0,0 +1,8 @@ +# tidyr + +tidyr handles reshaping data between different layouts, most notably converting between wide and long formats with `pivot_longer()` and `pivot_wider()`. Many statistical functions and ggplot2 specifically expect data in a particular shape, so tidyr often bridges the gap between how data is stored and how it needs to look for analysis or plotting. It also handles filling in missing combinations of values and unnesting nested data structures. + +Visit the following resources to learn more: + +- [@official@tidyr](https://tidyr.tidyverse.org/) +- [@video@R Split Data Frame Variable into Multiple Columns](https://www.youtube.com/watch?v=xrrWLKRfZWY&list=PLu6UwBFCnlEc7m2aK-AGfLLM-auJ5K3i5) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tidytext@BM2ukkGQzjbWiPgExsN5z.md b/roadmaps/r-programming/content/tidytext@BM2ukkGQzjbWiPgExsN5z.md new file mode 100644 index 000000000..0cd5703c2 --- /dev/null +++ b/roadmaps/r-programming/content/tidytext@BM2ukkGQzjbWiPgExsN5z.md @@ -0,0 +1,8 @@ +# tidytext + +tidytext applies tidyverse conventions to text analysis, representing tokenized text as a data frame with one row per word. This tidy structure lets you use familiar dplyr verbs to filter, count, and summarize text data, rather than working with specialized text-only data structures. It's typically the entry point before deeper text analysis like sentiment analysis or topic modeling. + +Visit the following resources to learn more: + +- [@book@Text Mining with R: A Tidy Approach](https://www.tidytextmining.com/) +- [@video@R - Tidy Text](https://www.youtube.com/playlist?list=PLnORDsS8KLUdmR-0XmsawmY4FKSIC4aqB) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tidyverse@qjHtL_erZg2F9HuDOSaKl.md b/roadmaps/r-programming/content/tidyverse@qjHtL_erZg2F9HuDOSaKl.md new file mode 100644 index 000000000..2f2dd8f7a --- /dev/null +++ b/roadmaps/r-programming/content/tidyverse@qjHtL_erZg2F9HuDOSaKl.md @@ -0,0 +1,10 @@ +# tidyverse + +The tidyverse is a collection of R packages designed to work together around a shared philosophy and consistent syntax for data science tasks. It includes packages for data manipulation, visualization, string handling, and more, all built to interoperate smoothly with the pipe operator. Learning the tidyverse's conventions once makes each individual package inside it easier to pick up. + +Visit the following resources to learn more: + +- [@official@tidyverse](https://tidyverse.org/) +- [@opensource@tidyverse](https://github.com/tidyverse) +- [@video@R Tidyverse Tutorial](https://www.youtube.com/playlist?list=PLLxj8fULvXwGOf8uHlL4Tr62oXSB5k_in) +- [@video@Manipulate data using the tidyverse](https://www.youtube.com/watch?v=nRtp7wSEtJA&list=PLtL57Fdbwb_D-iZXfWd2myjpYXSg_yi9G) \ No newline at end of file diff --git a/roadmaps/r-programming/content/time-series-analysis@6u9a625hfddNmkjU0uiSK.md b/roadmaps/r-programming/content/time-series-analysis@6u9a625hfddNmkjU0uiSK.md new file mode 100644 index 000000000..f588fdce4 --- /dev/null +++ b/roadmaps/r-programming/content/time-series-analysis@6u9a625hfddNmkjU0uiSK.md @@ -0,0 +1,9 @@ +# Time Series Analysis + +Time series analysis studies data collected sequentially over time, where the order of observations carries meaning that would be lost if the rows were shuffled. It involves identifying trends, seasonal patterns, and autocorrelation, where a value depends on its own previous values. Forecasting models use these identified patterns to predict future values based on historical data. + +Visit the following resources to learn more: + +- [@article@Time Series Analysis](https://rc2e.com/timeseriesanalysis) +- [@article@Using R for Time Series Analysis¶](https://a-little-book-of-r-for-time-series.readthedocs.io/en/latest/src/timeseries.html) +- [@video@Introduction To Time Series In R](https://www.youtube.com/watch?v=uW3PQmzvUcw) \ No newline at end of file diff --git a/roadmaps/r-programming/content/tmap@z9ZgXE5cDkLOlJNi6JIMJ.md b/roadmaps/r-programming/content/tmap@z9ZgXE5cDkLOlJNi6JIMJ.md new file mode 100644 index 000000000..6cf084cb5 --- /dev/null +++ b/roadmaps/r-programming/content/tmap@z9ZgXE5cDkLOlJNi6JIMJ.md @@ -0,0 +1,8 @@ +# tmap + +tmap creates thematic maps in R, designed specifically for visualizing spatial data like sf objects with a syntax inspired by ggplot2's layered approach. It supports both static maps for reports and interactive maps for exploration, switching between the two with a single setting. It's commonly used as the visualization layer on top of data prepared with sf or terra. + +Visit the following resources to learn more: + +- [@official@tmap: thematic maps in R](https://r-tmap.github.io/tmap/) +- [@article@Create Beautiful Thematic Maps with tmap](https://r-graph-gallery.com/package/tmap.html) \ No newline at end of file diff --git a/roadmaps/r-programming/content/type-conversion@5pYoyNuVkRmQBqdrgcAcN.md b/roadmaps/r-programming/content/type-conversion@5pYoyNuVkRmQBqdrgcAcN.md new file mode 100644 index 000000000..0289f40e1 --- /dev/null +++ b/roadmaps/r-programming/content/type-conversion@5pYoyNuVkRmQBqdrgcAcN.md @@ -0,0 +1,8 @@ +# Type Conversion + +Type conversion is deliberately changing a value from one type to another, such as turning the character `"5"` into the numeric value `5` with `as.numeric()`. R also does this automatically in some situations, called coercion, which can cause quiet bugs when data doesn't convert the way you expect. Understanding both the explicit functions and R's automatic rules helps catch these issues early. + +Visit the following resources to learn more: + +- [@article@Data Type Conversion in R](https://www.youtube.com/watch?v=_rPde-SPDVE) +- [@article@Data Types in R Programming and Data type conversion](https://medium.com/swlh/data-types-in-r-programming-and-data-type-conversion-1bb613213708) \ No newline at end of file diff --git a/roadmaps/r-programming/content/vectors@C19rHMygP6Uc1NDgzt3DG.md b/roadmaps/r-programming/content/vectors@C19rHMygP6Uc1NDgzt3DG.md new file mode 100644 index 000000000..ef9a94c43 --- /dev/null +++ b/roadmaps/r-programming/content/vectors@C19rHMygP6Uc1NDgzt3DG.md @@ -0,0 +1,9 @@ +# Vectors + +A vector is R's most basic data structure: an ordered collection of values that all share the same type. Nearly everything in R is built on vectors, including single values, which R treats as vectors of length one. Operations on vectors work element by element without needing an explicit loop, which is one of the defining features of how R code is written. + +Visit the following resources to learn more: + +- [@article@R Vectors](https://www.w3schools.com/r/r_vectors.asp) +- [@article@Vectors](https://r4ds.had.co.nz/vectors.html) +- [@video@Introduction to R: Vectors](https://www.youtube.com/watch?v=H4v4MRSc8k4) \ No newline at end of file diff --git a/roadmaps/r-programming/content/visual-inspection@UIFNQ9g5fMK-KoZCrqv27.md b/roadmaps/r-programming/content/visual-inspection@UIFNQ9g5fMK-KoZCrqv27.md new file mode 100644 index 000000000..d6cec962d --- /dev/null +++ b/roadmaps/r-programming/content/visual-inspection@UIFNQ9g5fMK-KoZCrqv27.md @@ -0,0 +1,9 @@ +# Visual Inspection + +Visual inspection uses plots, most often boxplots or scatterplots, to spot outliers by eye rather than through a fixed numeric rule. This often reveals context that purely numeric methods miss, such as whether an unusual value looks like a data entry error or a genuine rare event. It's frequently used alongside numeric methods like IQR or Z-score rather than as a replacement for them. + +Visit the following resources to learn more: + +- [@article@Understanding Outliers Through Boxplots](https://medium.com/codetodeploy/outliers-in-data-understanding-the-iqr-method-0341463f86a7) +- [@article@How to Label Outliers in Boxplots in ggplot2?](https://www.r-bloggers.com/2022/08/how-to-label-outliers-in-boxplots-in-ggplot2/) +- [@video@Ignore Outliers in ggplot2 Boxplot in R (Example) | Remove Outlier from Box-and-Whisker Plot](https://www.youtube.com/watch?v=QvdHb23t_8c) \ No newline at end of file diff --git a/roadmaps/r-programming/content/vs-code@ObA_xZDY7PxU54NGBwyVI.md b/roadmaps/r-programming/content/vs-code@ObA_xZDY7PxU54NGBwyVI.md new file mode 100644 index 000000000..881cc4ea5 --- /dev/null +++ b/roadmaps/r-programming/content/vs-code@ObA_xZDY7PxU54NGBwyVI.md @@ -0,0 +1,9 @@ +# VS Code + +VS Code is a general-purpose code editor from Microsoft that supports R through extensions rather than built-in features. It fits projects where R is just one part of a larger codebase involving other languages, since it shares one consistent editor across all of them. R support in VS Code is solid but less specialized than what RStudio or Positron offer natively. + +Visit the following resources to learn more: + +- [@official@R in Visual Studio Code](https://code.visualstudio.com/docs/languages/r) +- [@article@A Data Scientist’s View of Running R in Visual Studio Code](https://www.r-bloggers.com/2025/05/a-data-scientists-view-of-running-r-in-visual-studio-code/) +- [@video@Simple setup for R in VSCode instead of RStudio (Mac)](https://www.youtube.com/watch?v=rKPfssR66GM) \ No newline at end of file diff --git a/roadmaps/r-programming/content/web-scraping@2Es328m-FGfn7UQteQjdS.md b/roadmaps/r-programming/content/web-scraping@2Es328m-FGfn7UQteQjdS.md new file mode 100644 index 000000000..a3bfe753b --- /dev/null +++ b/roadmaps/r-programming/content/web-scraping@2Es328m-FGfn7UQteQjdS.md @@ -0,0 +1,10 @@ +# Web Scraping + +Web scraping extracts data directly from a website's HTML when that data isn't offered through a proper API or downloadable file. The rvest package reads a webpage's HTML and lets you select specific elements using CSS selectors or XPath, pulling out text, tables, or links. It requires some understanding of how the target page is structured, since different sites organize their HTML very differently. + +Visit the following resources to learn more: + +- [@article@Web scraping in R](https://statsandr.com/blog/web-scraping-in-r/) +- [@article@Web scraping tutorial](https://r4ds.hadley.nz/webscraping.html) +- [@video@Web Scrape Text from ANY Website](https://www.youtube.com/watch?v=v8Yh_4oE-Fs) +- [@video@Automated Web Scraping in R using rvest](https://www.youtube.com/watch?v=NwtxrbqE2Gc) \ No newline at end of file diff --git a/roadmaps/r-programming/content/window-functions@w78MVXiI2V3XXajsEEZyk.md b/roadmaps/r-programming/content/window-functions@w78MVXiI2V3XXajsEEZyk.md new file mode 100644 index 000000000..8cefd287d --- /dev/null +++ b/roadmaps/r-programming/content/window-functions@w78MVXiI2V3XXajsEEZyk.md @@ -0,0 +1,8 @@ +# Window Functions + +Window functions calculate a value for each row based on a set of related rows, without collapsing the data the way summarizing does. Ranking each row within its group, calculating a running total, or comparing a row's value to the previous row are all window function tasks. They're typically combined with grouping, keeping one row per original row rather than one row per group. + +Visit the following resources to learn more: + +- [@article@Window functions](https://dplyr.tidyverse.org/articles/window-functions.html) +- [@article@Window Functions in R](https://rpubs.com/ggoodwin/985305) \ No newline at end of file diff --git a/roadmaps/r-programming/content/working-with-data-tables@GChLgXktEvXnOs9fiv77x.md b/roadmaps/r-programming/content/working-with-data-tables@GChLgXktEvXnOs9fiv77x.md new file mode 100644 index 000000000..82cc476c9 --- /dev/null +++ b/roadmaps/r-programming/content/working-with-data-tables@GChLgXktEvXnOs9fiv77x.md @@ -0,0 +1,10 @@ +# Working with Data Tables + +Working with data tables means using the data.table package's syntax and conventions for fast, memory-efficient data manipulation on large datasets. It uses a distinctive bracket-based syntax, `dt[i, j, by]`, differing from both base R indexing and dplyr's verb-based approach. It's typically reached for once dataset size makes dplyr noticeably slower. + +Visit the following resources to learn more: + +- [@article@Introduction to data.table](https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.html) +- [@article@data.table in R – The Complete Beginners Guide](https://machinelearningplus.com/data-manipulation/datatable-in-r-complete-guide/) +- [@article@Data cleaning and exploration with data.table](https://www.meganstodel.com/posts/using-data-table/) +- [@video@data.table Package in R](https://www.youtube.com/playlist?list=PLu6UwBFCnlEcb47DE-yWPjoEeZp10PDJz) \ No newline at end of file diff --git a/roadmaps/r-programming/content/your-first-r-script@NkRfIHsHQnOHJSTuFQ9aj.md b/roadmaps/r-programming/content/your-first-r-script@NkRfIHsHQnOHJSTuFQ9aj.md new file mode 100644 index 000000000..738e18b8c --- /dev/null +++ b/roadmaps/r-programming/content/your-first-r-script@NkRfIHsHQnOHJSTuFQ9aj.md @@ -0,0 +1,8 @@ +# Your First R Script + +A first R script is usually a short file with a few lines of code, like assigning a variable and printing it, run to confirm your R installation actually works. Writing and running this first script is where syntax stops being abstract and starts being something you can see execute. It's also the point where you get comfortable with the basic loop of writing code, running it, and reading the output. + +Visit the following resources to learn more: + +- [@article@Using R for the very first time?](https://towardsdatascience.com/using-r-for-the-very-first-time-7d78c526ae68/) +- [@video@R Programming Tutorial - Learn the Basics of Statistical Computing](https://www.youtube.com/watch?v=_V8eKsto3Ug) \ No newline at end of file diff --git a/roadmaps/r-programming/content/z-score@2HIeG6ywOA9BkE9W3Gu9v.md b/roadmaps/r-programming/content/z-score@2HIeG6ywOA9BkE9W3Gu9v.md new file mode 100644 index 000000000..df144b3ae --- /dev/null +++ b/roadmaps/r-programming/content/z-score@2HIeG6ywOA9BkE9W3Gu9v.md @@ -0,0 +1,9 @@ +# Z-score + +The Z-score method flags values a certain number of standard deviations away from the mean, commonly using a threshold like 2 or 3. It works well for roughly normally distributed data, but poorly for data that's heavily skewed, since the mean and standard deviation themselves get distorted by skew. It gives a precise numeric measure of how unusual a given value is relative to the rest of the data. + +Visit the following resources to learn more: + +- [@article@Z-scores](https://statsandr.com/blog/outliers-detection-in-r/#z-scores) +- [@article@Z-Score and Modified Z-Score](https://medium.com/@fawwazmts/z-score-and-modified-z-score-f689296e4d3a) +- [@article@Outlier Detection in R: 4 Methods Compared](https://r-statistics.co/Outlier-Detection-in-R.html) \ No newline at end of file