Interactive GUI for Enhanced Adaptive Regression Through Hinges (EARTH) models.
earthUI provides a Shiny-based graphical interface for
the earth
package, making it easy to build, explore, and export multivariate
adaptive regression spline models without writing code.
tinytex::install_tinytex()sudo apt install libcurl4-openssl-dev libssl-dev libxml2-dev libsqlite3-dev libfontconfig1-dev# Install remotes if needed
install.packages("remotes")
# Install earthUI from GitHub
remotes::install_github("wcraytor/earthUI")To export reports (HTML, PDF, or Word), install the Quarto CLI and the R package:
install.packages("quarto")For PDF reports, a LaTeX distribution is also required:
install.packages("tinytex")
tinytex::install_tinytex()On Linux, the Roboto Condensed font must be installed as a system font for PDF rendering:
sudo apt install -y fonts-roboto fonts-lmodern # Ubuntu/Debian
fc-cache -fvlibrary(earthUI)
launch()This opens an interactive Shiny application where you can:
in/ folderearthUI organizes work as projects under a
per-machine regProj root folder. Set the location once via
Settings → “regProj Root Folder” (defaults to ~/regProj on
Mac/Linux, C:/regProj on Windows; can also be overridden
with the REGPROJ_ROOT environment variable).
Each project lives at:
<regProj root>/<purpose>/<flat-segment>/<os>_in/<file> # input data
<regProj root>/<purpose>/<flat-segment>/<os>_out_<method>/<file> # outputs
where:
<purpose> is gen (general),
appr (appraisal), or mktarea (market
area).<flat-segment> is
<country>_<state>_<county>_<city>_<project_name>
(admin level depth varies per country; see
country_schema()).<os> is mac, ubuntu, or
win11 — auto-detected. Each project scaffolds all three so
a single project folder works whether you sync it across operating
systems or not.<method> is earth,
glmnet, mgcv, or combined.Geographic codes (countries / states / counties / cities) are seeded
into <regProj>/geo.sqlite from comprehensive shipped
data — US Census FIPS for all incorporated places, plus GeoNames-derived
data for GB, DE, IT, FR, SE, and SG. Roughly 70,000 admin entries out of
the box; users can add more via the New Project modal.
Per-project model settings (target, predictors, parameters,
interactions) live in <regProj>/projects.sqlite keyed
by project + filename. So a project folder is fully self-contained: you
can tar it up, sync it via rsync, or hand it to a colleague
— they get the data, outputs, and settings together.
For real estate appraisal workflows, earthUI provides:
earthUI includes a demo appraisal dataset
(Appraisal_1.csv) with residential sales data. Access it
with:
demo_file <- system.file("extdata", "Appraisal_1.csv", package = "earthUI")
df <- import_data(demo_file)All analytical functions are available independently of the Shiny app:
library(earthUI)
# Load the demo dataset
demo_file <- system.file("extdata", "Appraisal_1.csv", package = "earthUI")
df <- import_data(demo_file)
cats <- detect_categoricals(df)
# Fit a model
result <- fit_earth(df, target = "sale_price",
predictors = c("living_sqft", "lot_size", "age"))
# Examine results
format_summary(result)
format_variable_importance(result)
# Plot
plot_variable_importance(result)
plot_contribution(result, 1)# List all projects under the active regProj root
list_df <- regproj_list_projects(sort_by = "recent")
# Read settings programmatically (e.g., for batch automation / ValEngr)
proj_path <- list_df$project_path[1L]
settings <- get_project_settings(proj_path, file_basename = "data.csv")
# Compose canonical project paths
in_dir <- regproj_path("appr", "us", c("ca", "081", "burlin"),
"lakemerritt_2026", os = "mac", in_or_out = "in")
out_dir <- regproj_path("appr", "us", c("ca", "081", "burlin"),
"lakemerritt_2026", os = "mac",
in_or_out = "out", method = "earth")# Generate a self-contained Quarto bundle (source + plots + reference.docx)
qmd <- generate_quarto_report(result, dest_dir = out_dir, base = "Appraisal_1")
# Convert any .qmd file (not just earthUI-generated) to HTML / Word / PDF
convert_quarto_file(qmd, formats = c("html", "docx"))AGPL-3