Pre-workshop instructions for participants. Let’s get ready to rock!
🚀
R and RStudio 💻
R is a
fantastic software for statistical analyses. 📊 RStudio is
your trusty sidekick, helping you navigate the R universe with ease.
It’s like a cozy integrated development environment (IDE) for R. 🌟
There are plenty of guides available to help you obtain or update R
and RStudio. Here are a couple of them to get you started:
Packages 📦
Packages are like magic toolboxes 🧰 that contain a collection of
functions for specific needs. We want to make sure that everyone has the
necessary packages installed for this workshop.
Install packages
Let’s create a list of packages that we’ll need from CRAN. Here they
are:
package_list <-
c(
"tidyverse", # general data wrangling and visualisation ✨
"pander", # nice tables 😍
"Bchron", # age-depth modelling 🕰️
"janitor", # string cleaning 🧹
"remotes", # installing packages from GitHub 🚀
"neotoma2", # access to the Neotoma database 🌿
"mgcv", # GAM fitting 📈
"marginaleffects", # predicting trends 📈
"here" # for working directory 🗺️
)
Now, let’s install all these amazing packages from CRAN:
lapply(
package_list, utils::install.packages
)
Install the REcopol package 🌼
The {REcopol} package provides easy-to-use functions for analyzing
fossil pollen data. Take a peek at its website for
more information.
⚠️ However, please note that there’s a small chance it won’t work on
the newest version of R or on operating systems other than Windows.
⚠️
Let’s try installing the package from GitHub:
# Install R-Ecopol
remotes::install_github("HOPE-UIB-BIO/R-Ecopol-package")
In case the installation doesn’t go as planned, don’t worry! I’ve got
a nifty workaround prepared for you. You can use it during the workshop.
Just check if you really need it (by running the following code) and let
me know during the workshop. 😉
if (
"REcopol" %in% utils::installed.packages()
) {
cat("REcopol package is already installed")
} else {
warning("You need to use workabout during the workshop")
}
#> REcopol package is already installed
Test if everything is set up ✅
Let’s do a quick test to make sure everything is in order. Running
the following code should produce
"Everything is good to go"
instead of an error message
saying "All required packages are not installed"
.
if (
isTRUE(
all(
c(package_list) %in%
as.data.frame(
utils::installed.packages()
)[, 1]
)
)
) {
cat("Everything is good to go")
} else {
warning("All required packages are not installed")
}
LS0tDQp0aXRsZTogUHJlLXdvcmtzaG9wDQpmb3JtYXQ6IA0KICBnZm06DQogICAgZmlnLXdpZHRoOiA3DQogICAgZmlnLWhlaWdodDogNg0KICAgIHdyYXA6IG5vbmUNCg0KLS0tDQoNClByZS13b3Jrc2hvcCBpbnN0cnVjdGlvbnMgZm9yIHBhcnRpY2lwYW50cy4gTGV0J3MgZ2V0IHJlYWR5IHRvIHJvY2shIPCfmoANCg0KIyMgUiBhbmQgUlN0dWRpbyDwn5K7DQoNCltSXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SXyhwcm9ncmFtbWluZ19sYW5ndWFnZSkpIGlzIGEgZmFudGFzdGljIHNvZnR3YXJlIGZvciBzdGF0aXN0aWNhbCBhbmFseXNlcy4g8J+TiiBbUlN0dWRpb10oaHR0cHM6Ly9wb3NpdC5jby9wcm9kdWN0cy9vcGVuLXNvdXJjZS9yc3R1ZGlvLykgaXMgeW91ciB0cnVzdHkgc2lkZWtpY2ssIGhlbHBpbmcgeW91IG5hdmlnYXRlIHRoZSBSIHVuaXZlcnNlIHdpdGggZWFzZS4gSXQncyBsaWtlIGEgY296eSBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IChJREUpIGZvciBSLiDwn4yfDQoNClRoZXJlIGFyZSBwbGVudHkgb2YgZ3VpZGVzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSBvYnRhaW4gb3IgdXBkYXRlIFIgYW5kIFJTdHVkaW8uIEhlcmUgYXJlIGEgY291cGxlIG9mIHRoZW0gdG8gZ2V0IHlvdSBzdGFydGVkOg0KDQotIFtSIEJhc2ljcyBmb3IgUGFsZW9lY29sb2dpc3RzXShodHRwczovL2NraWFodGlwZXMuZ2l0aHViLmlvLykgYnkgQy5BLiBLaWFodGlwZXMsIGEgcHJldmlvdXMgcGFydCBvZiB0aGUgQVBEIHNlcmllcyBvZiB3b3Jrc2hvcHMuIA0KLSBbSW5zdGFsbCBvciBVcGRhdGUgUiB0dXRvcmlhbF0oaHR0cHM6Ly9qZW5uaHVjay5naXRodWIuaW8vd29ya3Nob3BzL2luc3RhbGxfdXBkYXRlX1IuaHRtbCkgYnkgSmVubmlmZXIgSHVjay4gDQoNCmBgYHtyIGNodW5rLXNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBjb2xsYXBzZSA9IFRSVUUsDQogIGNvbW1lbnQgPSAiIz4iDQopDQpgYGANCg0KIyMgUGFja2FnZXMg8J+Tpg0KDQpQYWNrYWdlcyBhcmUgbGlrZSBtYWdpYyB0b29sYm94ZXMg8J+nsCB0aGF0IGNvbnRhaW4gYSBjb2xsZWN0aW9uIG9mIGZ1bmN0aW9ucyBmb3Igc3BlY2lmaWMgbmVlZHMuIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgZXZlcnlvbmUgaGFzIHRoZSBuZWNlc3NhcnkgcGFja2FnZXMgaW5zdGFsbGVkIGZvciB0aGlzIHdvcmtzaG9wLg0KDQojIyMgSW5zdGFsbCBwYWNrYWdlcyANCg0KTGV0J3MgY3JlYXRlIGEgbGlzdCBvZiBwYWNrYWdlcyB0aGF0IHdlJ2xsIG5lZWQgZnJvbSBDUkFOLiBIZXJlIHRoZXkgYXJlOg0KDQpgYGB7ciBwa2ctbGlzdCwgcmVzdWx0cz0naGlkZScsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQpwYWNrYWdlX2xpc3QgPC0NCiAgYygNCiAgICAidGlkeXZlcnNlIiwgIyBnZW5lcmFsIGRhdGEgd3JhbmdsaW5nIGFuZCB2aXN1YWxpc2F0aW9uIOKcqA0KICAgICJwYW5kZXIiLCAjIG5pY2UgdGFibGVzIPCfmI0NCiAgICAiQmNocm9uIiwgIyBhZ2UtZGVwdGggbW9kZWxsaW5nIPCflbDvuI8NCiAgICAiamFuaXRvciIsICMgc3RyaW5nIGNsZWFuaW5nIPCfp7kNCiAgICAicmVtb3RlcyIsICMgaW5zdGFsbGluZyBwYWNrYWdlcyBmcm9tIEdpdEh1YiDwn5qADQogICAgIm5lb3RvbWEyIiwgIyBhY2Nlc3MgdG8gdGhlIE5lb3RvbWEgZGF0YWJhc2Ug8J+Mvw0KICAgICJtZ2N2IiwgIyBHQU0gZml0dGluZyDwn5OIDQogICAgIm1hcmdpbmFsZWZmZWN0cyIsICMgcHJlZGljdGluZyB0cmVuZHMg8J+TiA0KICAgICJoZXJlIiAjIGZvciB3b3JraW5nIGRpcmVjdG9yeSDwn5e677iPDQogICkNCmBgYA0KDQpOb3csIGxldCdzIGluc3RhbGwgYWxsIHRoZXNlIGFtYXppbmcgcGFja2FnZXMgZnJvbSBDUkFOOg0KDQpgYGB7ciBwa2ctaW5zdGFsbCwgZXZhbCA9IEZBTFNFfQ0KbGFwcGx5KA0KICBwYWNrYWdlX2xpc3QsIHV0aWxzOjppbnN0YWxsLnBhY2thZ2VzDQopDQpgYGANCg0KIyMjIyBJbnN0YWxsIHRoZSBSRWNvcG9sIHBhY2thZ2Ug8J+MvA0KDQpUaGUge1JFY29wb2x9IHBhY2thZ2UgcHJvdmlkZXMgZWFzeS10by11c2UgZnVuY3Rpb25zIGZvciBhbmFseXppbmcgZm9zc2lsIHBvbGxlbiBkYXRhLiBUYWtlIGEgcGVlayBhdCBpdHMgW3dlYnNpdGVdKGh0dHBzOi8vaG9wZS11aWItYmlvLmdpdGh1Yi5pby9SLUVjb3BvbC1wYWNrYWdlLykgZm9yIG1vcmUgaW5mb3JtYXRpb24uDQoNCuKaoO+4jyBIb3dldmVyLCBwbGVhc2Ugbm90ZSB0aGF0IHRoZXJlJ3MgYSBzbWFsbCBjaGFuY2UgaXQgd29uJ3Qgd29yayBvbiB0aGUgbmV3ZXN0IHZlcnNpb24gb2YgUiBvciBvbiBvcGVyYXRpbmcgc3lzdGVtcyBvdGhlciB0aGFuIFdpbmRvd3MuIOKaoO+4jw0KDQpMZXQncyB0cnkgaW5zdGFsbGluZyB0aGUgcGFja2FnZSBmcm9tIEdpdEh1YjoNCg0KYGBge3IgcGtnLWluc3RhbGwtZ2gsIGV2YWwgPSBGQUxTRX0NCiMgSW5zdGFsbCBSLUVjb3BvbA0KcmVtb3Rlczo6aW5zdGFsbF9naXRodWIoIkhPUEUtVUlCLUJJTy9SLUVjb3BvbC1wYWNrYWdlIikNCmBgYA0KDQpJbiBjYXNlIHRoZSBpbnN0YWxsYXRpb24gZG9lc24ndCBnbyBhcyBwbGFubmVkLCBkb24ndCB3b3JyeSEgSSd2ZSBnb3QgYSBuaWZ0eSB3b3JrYXJvdW5kIHByZXBhcmVkIGZvciB5b3UuIFlvdSBjYW4gdXNlIGl0IGR1cmluZyB0aGUgd29ya3Nob3AuIEp1c3QgY2hlY2sgaWYgeW91IHJlYWxseSBuZWVkIGl0IChieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29kZSkgYW5kIGxldCBtZSBrbm93IGR1cmluZyB0aGUgd29ya3Nob3AuIPCfmIkNCg0KYGBge3IgbmVlZC13b3JrYXJvdW5kfQ0KaWYgKA0KICAiUkVjb3BvbCIgJWluJSB1dGlsczo6aW5zdGFsbGVkLnBhY2thZ2VzKCkNCikgew0KICBjYXQoIlJFY29wb2wgcGFja2FnZSBpcyBhbHJlYWR5IGluc3RhbGxlZCIpDQp9IGVsc2Ugew0KICB3YXJuaW5nKCJZb3UgbmVlZCB0byB1c2Ugd29ya2Fib3V0IGR1cmluZyB0aGUgd29ya3Nob3AiKQ0KfQ0KYGBgDQoNCg0KIyMjIFRlc3QgaWYgZXZlcnl0aGluZyBpcyBzZXQgdXAg4pyFDQoNCkxldCdzIGRvIGEgcXVpY2sgdGVzdCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiBvcmRlci4gUnVubmluZyB0aGUgZm9sbG93aW5nIGNvZGUgc2hvdWxkIHByb2R1Y2UgYCJFdmVyeXRoaW5nIGlzIGdvb2QgdG8gZ28iYCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc2F5aW5nIGAiQWxsIHJlcXVpcmVkIHBhY2thZ2VzIGFyZSBub3QgaW5zdGFsbGVkImAuDQoNCmBgYHtyIHBrZy10ZXN0LCBldmFsID0gRkFMU0V9DQppZiAoDQogIGlzVFJVRSgNCiAgICBhbGwoDQogICAgICBjKHBhY2thZ2VfbGlzdCkgJWluJQ0KICAgICAgICBhcy5kYXRhLmZyYW1lKA0KICAgICAgICAgIHV0aWxzOjppbnN0YWxsZWQucGFja2FnZXMoKQ0KICAgICAgICApWywgMV0NCiAgICApDQogICkNCikgew0KICBjYXQoIkV2ZXJ5dGhpbmcgaXMgZ29vZCB0byBnbyIpDQp9IGVsc2Ugew0KICB3YXJuaW5nKCJBbGwgcmVxdWlyZWQgcGFja2FnZXMgYXJlIG5vdCBpbnN0YWxsZWQiKQ0KfQ0KYGBg