📦 emissionTrackeR
An R Package
March 30, 2025
📦 emissionTrackerR
emissionTrackerR is an R package that helps track, log, and visualize carbon emissions generated by your R code, ML experiments, and projects. It supports automatic logging, metadata collection, real-world emission equivalents, and a built-in Shiny dashboard. It is inspired by and conceptually based on the Python package CodeCarbon developed by ML CO2 Impact, and aims to bring similar functionality to the R ecosystem.
🚀 Installation
# Install from GitHub
devtools::install_github("your-username/emissionTrackerR")
🔧 Basic Usage
library(emissionTrackerR)
# Track emissions for a code block
track_emissions_for("example_sleep", {
Sys.sleep(2)
})
# Output Console:
Tracking started at 2025-04-13 18:09:43
Tracking stopped at 2025-04-13 18:09:45
Estimated emissions (kg CO2): 0.000414
Logs will be saved as:
- emissions_log.json
- emissions_log.csv
🧠 Example: Machine Learning Task
library(emissionTrackerR)
# Track emissions for a code block
library(randomForest)
track_emissions_for("iris_rf_model", {
# Load and expand the iris dataset 10×
data(iris)
big_iris <- do.call("rbind", replicate(10, iris, simplify = FALSE))
# Train/test split
idx <- sample(nrow(big_iris), 0.8 * nrow(big_iris))
train <- big_iris[idx, ]
test <- big_iris[-idx, ]
# Train and evaluate model
model <- randomForest(Species ~ ., data = train)
acc <- mean(predict(model, test) == test$Species)
print(acc)
})
# Output Console:
Tracking started at 2025-04-13 18:13:53
[1] 1
Tracking stopped at 2025-04-13 18:13:53
Estimated emissions (kg CO2): 8.9e-05
[1] 1
🛠 Features
-
Automatic Emissions Tracking: Monitor the carbon footprint of your R code execution seamlessly.
-
Metadata Collection: Gather contextual information about your experiments for comprehensive tracking.
-
Real-World Equivalents: Translate emissions data into relatable metrics (e.g., equivalent kilometers driven).
-
Shiny Dashboard: Visualize emissions data interactively through an integrated Shiny application.