SkillAgentSearch skills...

Sgolay

Efficient Savitzky-Golay filtering for R

Install / Use

/learn @zeehio/Sgolay
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<!-- README.md is generated from README.Rmd. Please edit that file -->

sgolay

<!-- badges: start -->

CRAN
status R-CMD-check Codecov test
coverage

<!-- badges: end -->

The goal of sgolay is to offer efficient and vectorized Savitzky-Golay filters.

Installation

You can install the CRAN version with

# install.packages("sgolay")

Or you can install the development version of sgolay from GitHub with:

# install.packages("remotes")
remotes::install_github("zeehio/sgolay")

Benchmark

sgolay is faster than signal, especially on either larger filter lengths or when applied on matrices, since it uses the Fast Fourier Transform and avoids several memory copies and extra allocations.

library(sgolay)
x <- matrix(runif(1000*1000), nrow = 1000, ncol = 1000)

filt <- signal::sgolay(p = 2, n = 51)

timing <- bench::mark(
  signal = apply(x, 2L, function(s) signal::sgolayfilt(s, filt)),
  sgolay = sgolay::sgolayfilt(x, filt), 
  min_iterations = 50
)
#> Warning: Some expressions had a GC in every iteration; so filtering is disabled.
plot(timing, type = 'ridge')
#> Loading required namespace: tidyr
#> Picking joint bandwidth of 0.0135
<img src="man/figures/README-unnamed-chunk-2-1.png" width="100%" />
View on GitHub
GitHub Stars7
CategoryDevelopment
Updated2y ago
Forks1

Languages

C

Security Score

70/100

Audited on Mar 8, 2024

No findings