Skip to content
CRAN requires the check problems on this package to be fixed before Oct 27 or it will be archived. See the check details

timesift

0.3.1

Learn Predictive Representations of Time-Varying Data

0packages depend
245downloads / year
87.0%test coverage
12/13flavors OK

Overview

About

Fits and compares representations of time-varying data against a prediction target. Given a table of targets and a table of time-stamped series belonging to them, it builds each candidate representation, from the record unreduced through a calendar grain such as a week or a month to a lookback anchored on each target, fits the requested learners on each, scores every candidate on one set of held-out folds, and stacks the out-of-fold predictions into an ensemble. Calendar-aware binning keeps a bin a real week or month rather than a fixed block of hours. Learners, response heads and metrics are registered rather than hard-coded, so adding one is a registration and not a fork of the fitting code. The penalised baseline is an elastic net fitted by cyclic coordinate descent along a warm-started path, following Friedman, Hastie and Tibshirani (2010) doi:10.18637/jss.v033.i01. The shipped default is presence-absence with a joint multi-label head scored by the true skill statistic of Allouche, Tsoar and Kadmon (2006) doi:10.1111/j.1365-2664.2006.01214.x, the setting used for species distribution modelling from microclimate loggers.

Changes in 0.3.1

New

  • calendar_channels() gains cycles. "day" adds day_sin and day_cos, the place of each bin's midpoint in the UTC day, beside or instead of the year's pair, in the order named. It is read in UTC for the reason the year is: a zone's offset and a site's longitude are the same shift for every bin, where a clock's summer time would move the phase by an hour twice a year. It is refused on bins a day or more apart, where every bin would sit at one place in the day. One definition in the shared core serves both languages, and the fixtures pin it as they pin the year's.

Fixed

  • The encoders read the channels of calendar_channels() at their own amplitude, where they used to standardise them like a reading. The channels lie on the unit circle already, and being identical across units they reach a network as a bias, whose step under AdamW grows with the scale of the input carrying it; standardising multiplied them by 1.41. At the hourly rung they are four of the fully connected encoder's five channels, and on the Schrankogel record they cost it 0.044 TSS against the study, which fed them unscaled. calendar_channels() records its channels in a position attribute (a field in Python), and bind_channels() carries position and static from every argument; R's used to drop static and Python's to keep the first argument's alone (#81).
Show all changes in 0.3.1Hide the rest of the changes in 0.3.1
  • plot() of a select_grain() result drew empty axes. The inner scores were matched to their candidates on a label joined by a space where the candidates' was joined by a bar, so every line and every circle was placed at no position. One helper now writes the label wherever a selection's tables are matched, the bottom margin is sized to the longest candidate name, and the table returned says where each score was drawn and which one its fold selected (#79).
  • occlusion() with substitute = "permute" permuted each channel of a held-back bin separately, so a unit could be shown the coldest day of one unit beside the warmest day of another, a reading no unit made. A bin is now held back whole, by one permutation per draw. A channel that is the same for every unit, as the calendar channels are, is left in place when a bin is held back; unit_mean used to replace it too, which took the bin's place in the year away along with its reading (#79).
  • The Python occlusion() scored every cell, including the ones the scorable-cell mask leaves out, so its weights could rest on cells R's did not. It now reads the mask as every score does (#79).
  • grain_contrasts() read each grain's name back out of the contrast label emmeans writes, which puts parentheses around a level holding a character it treats as an operator: a grain called month-mean came back as (month-mean). The name is now taken from the factor's levels (#79).
  • grain_contrasts() stopped with "undefined columns selected" on a ladder of more than 3000 scored cells, which the Schrankogel grid is at 7070 per architecture: emmeans stops computing Satterthwaite's degrees of freedom past that size and names its interval columns differently. The limit is now the ladder's own size (#79).
  • Recovery tests for grain_contrasts(): a planted effect per grain is recovered and its intervals cover it at their stated rate over twenty seeds, and with no effect the contrast finds none (#79).

The reproduction

  • inst/reproduce/schrankogel.R compares the stepwise arm and the network grid with the paper, where it used to write them without a reference (#80). The stepwise arm is fitted unweighted, as the study's forward selection was, under a head that differs from the shipped one in that alone. The eleven-member ensemble is the study's: each member at its own window, channels, kernel, dropout and seed, where the driver used to run one generic set at every window. The hourly rung reads the five channels the study's hourly networks read. The grain contrast is read in AUC against the window the study took as each architecture's best, as its table is.

From NEWS.md in the release

Install

Health

CRAN checks
1ERROR12OK
Check messages
ERRORwhether package can be installedr-devel-linux-x86_64-fedora-clang
Installation failed.
See ‘/data/localhost/ripley/R/packages/tests-clang/timesift.Rcheck/00install.out’ for details.
Additional issues

CRAN check page ↗

Slowest check: 10.2 min · r-oldrel-windows-x86_64
Status changes
  • ERROR12 OK, 1 ERRORNow
  • ERROR10 OK, 1 ERROR2026-10-08
  • OK5 OK2026-10-03
Advisories

none known

Documentation

In release 0.3.1
READMEYes · 1,337 wordsVignettesYes · 2 · evaluation depends on the environmentNEWSYes · 67% structured · mentions 0.3.1Citation fileYes · software entry onlyWebsiteYes · pkgdown

The repository also keeps web-only articles.

Description cites a JSS article
Help pages
53 (3 internal)includes a package overview page
Examples that run
98%45 run in a plain check · 1 only when donttest examples are enabled (R CMD check --as-cran)
Exported functions with examples
96%
Documented parameters
98%
Return-value docs
98%
Help pages citing references
4%

Downloads

245
CRAN downloads in the past year
Rank #25,362 · ~1/day · ~20/mo
timesift
Daily download trend is not available in this view yet.
24530 days
24590 days
2451 year
Compare downloads with other packages →

Repository

0Stars
0Forks
0Open issues
0Open PRs
6Releases
202Commits
2Commit identities
microclimatepythonr-packagespecies-distribution-modellingtime-series
202 commits · Last activity 2026-10-16 · Default branch at 0.6.0, ahead of CRAN 0.3.1 (checked 2026-10-11)
Responsiveness
How these are sampled
PRs merged (all time)
not measured
Median days to close, 50 most recently updated closed issues
0
Median days to close, 50 most recently updated closed PRs
not measured

Releases over time

2026-10-02 · 42026-10-07 · 6
PracticesBeta

8 development-tooling and community-health practices detected across 6 families in the upstream repository

Checks run against github.com/gcol33/timesift on 2026-10-11.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Docs source (2)
pkgdown

GitHub Pages site last deployed 2026-10-10

pkgdown site last built 2026-10-10

Coverage (1)
Coverage reporting
CRAN release process (1)
cran-comments.md
Show all practicesHide 2 practices
Research and citation (1)
codemeta.json
Git structural (1)
.gitattributes
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-09-02
    Seen in the repository: CLAUDE.md
    Named in .Rbuildignore: CLAUDE.md
    Commits: 2 by its own account · at least 202 crediting it in the message
Models named in its commits
  • Claude Opus 598 commits · Sep 2026
  • Claude Fable 5.116 commits · Sep 2026
  • Claude Sonnet 51 commit · Sep 2026

Some of these counts are a minimum, because the search stopped before the oldest commits.

Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
14 external dependencies (excludes base and recommended)

Installing timesift adds 8 packages (5 with compiled code, 3.1 MB of source tarballs). Heaviest: vctrs 1.0 MB, rlang 766 KB, cli 629 KB.

Depends (1)
R >= 4.1
Imports (7)
grDevicesgraphicsrlangstatstidyselecttoolsutils
LinkingTo (1)
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

People & History

People (1)
Author, Maintainer since 0.3.1 (2026), Copyright holder
Releases (1)
  • 0.3.1Latest
    2026-10-02 · current release
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-10-02
Total releases
1 / 1 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 4.1
Download size
804 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("timesift")

The package provides a citation file, so citation() returns the authors' own entry.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for timesift version 0.3.1 [Data set]. HJJB, LLC. Data release v2026-10-17. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-17, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy