Main Classes
| Class | Use Case |
|---|---|
Loess |
Primary interface - batch processing |
StreamingLoess |
Large datasets (>100K points) |
OnlineLoess |
Real-time data streams |
rfastloess is a high-performance R package for LOESS
(Locally Weighted Scatterplot Smoothing) built on a Rust backend.
Full documentation: https://loess.readthedocs.io/
The package uses S3 classes to provide a user-friendly interface.
Models and results can be inspected using print(). Results
can also be visualized using plot().
library(rfastloess)
# Generate example data
set.seed(42)
x <- seq(0, 10, length.out = 100)
y <- sin(x) + rnorm(100, sd = 0.3)
# Initialize model
model <- Loess(fraction = 0.3)
print(model)
#> <Loess Model>
#> Fraction: 0.3
#> Iterations: 3
#> Weight Function: tricube
#> Parallel: TRUE
# Fit model
result <- model$fit(x, y)
print(result)
#> <LoessResult>
#> Points: 100
#> Fraction Used: 0.3
#> Iterations Used: 3
# Quick visualization using the S3 plot method
plot(result, main = "Auto-plot of LoessResult")
# For custom plotting, access components directly
plot(x, y, pch = 16, col = "gray", main = "Manual Overlay")
lines(result$x, result$y, col = "red", lwd = 2)# Add outliers
y_outliers <- y
y_outliers[sample(1:100, 10)] <- y_outliers[sample(1:100, 10)] + 5
# Robust smoothing with confidence intervals
result_robust <- Loess(
fraction = 0.3,
iterations = 5,
confidence_intervals = 0.95
)$fit(x, y_outliers)
# Plot
plot(x, y_outliers, pch = 16, col = "gray", main = "Robust LOESS")
lines(result_robust$x, result_robust$y, col = "red", lwd = 2)
lines(result_robust$x, result_robust$confidence_lower, col = "blue", lty = 2)
lines(result_robust$x, result_robust$confidence_upper, col = "blue", lty = 2)| Class | Use Case |
|---|---|
Loess |
Primary interface - batch processing |
StreamingLoess |
Large datasets (>100K points) |
OnlineLoess |
Real-time data streams |
For comprehensive documentation including:
sessionInfo()
#> R version 4.6.1 (2026-06-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 26.04 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] rfastloess_0.9.0 rmarkdown_2.31
#>
#> loaded via a namespace (and not attached):
#> [1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0 xfun_0.60
#> [5] maketools_1.3.2 cachem_1.1.0 knitr_1.51 htmltools_0.5.9
#> [9] buildtools_1.0.0 lifecycle_1.0.5 cli_3.6.6 sass_0.4.10
#> [13] jquerylib_0.1.4 compiler_4.6.1 sys_3.4.3 tools_4.6.1
#> [17] evaluate_1.0.5 bslib_0.11.0 yaml_2.3.12 otel_0.2.0
#> [21] jsonlite_2.0.0 rlang_1.3.0