Skip to content

Memory-Efficient Storage of Large Data on Disk and Fast Access Functions

14packages dependsuggested by 7
204.4Kdownloads / year
28.8%test coverage
13/13flavors OK

Overview

About

The ff package provides data structures that are stored on disk but behave (almost) as if they were in RAM by transparently mapping only a section (pagesize) in main memory - the effective virtual memory consumption per ff object. ff supports R's standard atomic data types 'double', 'logical', 'raw' and 'integer' and non-standard atomic types boolean (1 bit), quad (2 bit unsigned), nibble (4 bit unsigned), byte (1 byte signed with NAs), ubyte (1 byte unsigned), short (2 byte signed with NAs), ushort (2 byte unsigned), single (4 byte float with NAs). For example 'quad' allows efficient storage of genomic data as an 'A','T','G','C' factor. The unsigned types support 'circular' arithmetic. There is also support for close-to-atomic types 'factor', 'ordered', 'POSIXct', 'Date' and custom close-to-atomic types. ff not only has native C-support for vectors, matrices and arrays with flexible dimorder (major column-order, major row-order and generalizations for arrays). There is also a ffdf class not unlike data.frames and import/export filters for csv files. ff objects store raw data in binary flat files in native encoding, and complement this with metadata stored in R as physical and virtual attributes. ff objects have well-defined hybrid copying semantics, which gives rise to certain performance improvements through virtualization. ff objects can be stored and reopened across R sessions. ff files can be shared by multiple ff R objects (using different data en/de-coding schemes) in the same process or from multiple R processes to exploit parallelism. A wide choice of finalizer options allows to work with 'permanent' files as well as creating/removing 'temporary' ff files completely transparent to the user. On certain OS/Filesystem combinations, creating the ff files works without notable delay thanks to using sparse file allocation. Several access optimization techniques such as Hybrid Index Preprocessing and Virtualization are implemented to achieve good performance even with large datasets, for example virtual matrix transpose without touching a single byte on disk. Further, to reduce disk I/O, 'logicals' and non-standard data types get stored native and compact on binary flat files i.e. logicals take up exactly 2 bits to represent TRUE, FALSE and NA. Beyond basic access functions, the ff package also provides compatibility functions that facilitate writing code for ff and ram objects and support for batch processing on ff objects (e.g. as.ram, as.ff, ffapply). ff interfaces closely with functionality from package 'bit': chunked looping, fast bit operations and coercions between different objects that can store subscript information ('bit', 'bitwhich', ff 'boolean', ri range index, hi hybrid index). This allows to work interactively with selections of large datasets and quickly modify selection criteria. Further high-performance enhancements can be made available upon request.

Install

Health

CRAN checks
13OK
Slowest check: 4.1 min · r-devel-windows-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-07-30
  • NOTE10 OK, 3 NOTE2026-07-25
  • ERROR9 NOTE, 4 ERROR2026-07-11
Show 3 earlier changesHide 3 earlier changes
  • NOTE13 NOTE2026-06-09
  • ERROR12 NOTE, 1 ERROR2026-06-08
  • NOTE2 OK, 12 NOTE2026-03-10
Advisories

none known

Documentation

In release 4.5.3
README· In the repository, left out of the releaseVignettesNoNEWSYes · 33% structuredCitation fileNoWebsitenot declared in DESCRIPTION
Help pages
101 (2 internal)
Examples that run
98%88 run in a plain check · 2 never run
Exported functions with examples
89%
Documented parameters
99%
Return-value docs
100%
Help pages citing references
2%

Downloads

204.4K
CRAN downloads in the past year
Rank #832 · ~560/day · ~17K/mo
Daily download trend is not available in this view yet.
16.7K30 days
53.9K90 days
204.4K1 year
Compare downloads with other packages →
Also on2.8K r2u165 autocran18.4K conda_forge233 bioconda326 c2d4u

Repository

30Stars
8Forks
6Open issues
2Open PRs
0Releases
58Commits
4Commit identities
58 commits · Last activity 2026-07-21
Responsiveness
How these are sampled
PRs merged (all time)
60%
Median days to close, 50 most recently updated closed issues
107
Median days to close, 50 most recently updated closed PRs
24

Stars over time

2025-09-12 · 302026-07-07 · 30
PracticesBeta

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

Checks run against github.com/truecluster/ff on 2026-10-18.

Continuous integration (1)
GitHub Actions
Lint, format, editor (1)
RStudio project
How this is detected·Detection ruleset v3 (2026-09-26)

Dependencies

Declared dependencies
4 external dependencies (excludes base and recommended)

Installing ff adds 1 package (1 with compiled code, 297 KB of source tarballs). Heaviest: bit 297 KB.

Depends (3)
R >= 3.4.0bitutils
Imports (0)
none
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
14direct
54indirect
Depends 2 · Imports 12
Suggested by 7
Show all 21 packagesHide all 21 packages
Depends, Imports or LinkingTo, most downloaded first
Suggests, most downloaded first

People & History

People (6)
Author, Maintainer · added in 4.0.2
Contributor · added in 4.0.2
Contributor
Contributor · added in 4.0.2
Contributor

Maintainer since 2.1-0 (2008), previously Daniel Adler (1.0-1)

Listed in earlier versions (3)
Show 3 peopleHide 3 people
Christian Glaeser
no longer listed · 1.0-1
Christian Gl\xE4ser
no longer listed · 2.1-0 to 2.2-5
Jens Oehlschl\xE4gel
no longer listed · 2.1-0 to 2.2-5
Releases (30)

Pick two releases to compare their code metrics.

  • 4.5.3Latest
    record
    2026-07-22 · current release · diff ↗
  • R
    R 4.6.0 released · 2026-04-24
  • R
    R 4.5.0 released · 2025-04-11
  • 4.5.2
    record
    2025-01-13 · diff ↗
  • 4.5.0
    record
    2024-09-20 · diff ↗
  • R
    R 4.4.0 released · 2024-04-24
  • 4.0.12
    record
    2024-01-12 · diff ↗ ·
    removed 1 export
    .Last.lib
  • R
    R 4.3.0 released · 2023-04-21
  • 4.0.9
    record
    2023-01-25 · diff ↗
  • 4.0.7
    record
    2022-05-06 · diff ↗
  • R
    R 4.2.0 released · 2022-04-22
  • 4.0.5
    record
    2021-10-29 · diff ↗
  • R
    R 4.1.0 released · 2021-05-18
  • 4.0.4
    record
    2020-10-13 · diff ↗
  • 4.0.2
    record
    2020-07-30 · diff ↗ ·
    added 166 exports
    clone.ff, clone.ffdf, as.hi, pattern, pattern<-, filename, filename<-, pagesize, is.open, is.readonly, vmode, as.vmode, vmode<-, finalizer, finalizer<-, finalize, delete, deleteIfOpen, as.ff, as.ram, dimorder, dimorder<-, vw, vw<-, is.factor, is.ordered, ramclass, ramattribs, recodeLevels, sortLevels and 136 more
  • R
    R 4.0.0 released · 2020-04-24
Show 38 earlier eventsHide 38 earlier events
  • 2.2-14.2
    record
    2020-04-16 · diff ↗
  • R
    R 3.6.0 released · 2019-04-26
  • 2.2-14
    record
    2018-05-15 · diff ↗
  • R
    R 3.5.0 released · 2018-04-23
  • R
    R 3.4.0 released · 2017-04-21
  • R
    R 3.3.0 released · 2016-05-03
  • R
    R 3.2.0 released · 2015-04-16
  • R
    R 3.1.0 released · 2014-04-10
  • 2.2-13
    record
    2014-04-09 · diff ↗
  • 2.2-12
    record
    2013-10-16 · diff ↗
  • R
    R 3.0.0 released · 2013-04-03
  • 2.2-11
    record
    2013-03-12 · diff ↗
  • 2.2-10
    record
    2012-11-06 · diff ↗
  • 2.2-9
    record
    2012-10-24 · diff ↗
  • 2.2-7
    record
    2012-05-08 · diff ↗
  • 2.2-6
    record
    2012-03-31 · diff ↗
  • R
    R 2.15.0 released · 2012-03-30
  • 2.2-5
    record
    2012-01-27 · diff ↗
  • 2.2-4
    record
    2012-01-15 · diff ↗
  • R
    R 2.14.0 released · 2011-10-31
  • 2.2-3
    record
    2011-07-25 · diff ↗
  • 2.2-2
    record
    2011-04-24 · diff ↗
  • R
    R 2.13.0 released · 2011-04-13
  • R
    R 2.12.0 released · 2010-10-15
  • 2.2-1
    record
    2010-10-05 · diff ↗
  • 2.2-0
    record
    2010-09-30 · diff ↗
  • R
    R 2.11.0 released · 2010-04-22
  • 2.1-2
    record
    2010-01-20 · diff ↗
  • 2.1-1
    record
    2009-11-05 · diff ↗
  • 2.1-0
    record
    2009-11-03 · diff ↗
  • R
    R 2.10.0 released · 2009-10-26
  • R
    R 2.9.0 released · 2009-04-17
  • 2.0.1
    record
    2009-04-16 · diff ↗
  • R
    R 2.8.0 released · 2008-10-20
  • 2.0.0
    record
    2008-08-03 · diff ↗ ·
    removed 8 exports
    getpagesize, getdefaultpagesize, ff, ffm, ffm.data.frame, seqpack, runique, sample
  • R
    R 2.7.0 released · 2008-04-22
  • 1.0-1
    record
    2007-11-03
  • R
    R 2.6.0 released · 2007-10-03

Package metadata

First published
2007-11-03
Total releases
30 / 19 yrs
License
GPL-2 | GPL-3 | file LICENSE OSI
Minimum R
≥ 3.4.0
Download size
321 KB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("ff")
Oehlschlägel, J., Adler, D., Gläser, C., Nenadic, O., Schuemie, M., & Zucchini, W. (2026). ff: Memory-Efficient Storage of Large Data on Disk and Fast Access Functions (Version 4.5.3) [Computer software]. https://doi.org/10.32614/CRAN.package.ff

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

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 ff version 4.5.3 [Data set]. HJJB, LLC. Data release v2026-10-22. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-22, 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