All Projects → r-lib → backports

r-lib / backports

Licence: other
Reimplementations of Functions Introduced Since R-3.0.0

Programming Languages

r
7636 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to backports

PackageDevelopment
Task View: PackageDevelopment
Stars: ✭ 38 (-32.14%)
Mutual labels:  cran
ctv
CRAN Task View Initiative
Stars: ✭ 17 (-69.64%)
Mutual labels:  cran
rcppgsl
Rcpp integration for GNU GSL vectors and matrices
Stars: ✭ 28 (-50%)
Mutual labels:  cran
cran-network-structure
Scripts used for my UseR!2015 presentation on the network structure of CRAN
Stars: ✭ 22 (-60.71%)
Mutual labels:  cran
opendata
CRAN OpenData Task View
Stars: ✭ 192 (+242.86%)
Mutual labels:  cran
base
Scripts used to build R 3.3 - 3.6 on Windows (retired)
Stars: ✭ 42 (-25%)
Mutual labels:  cran
meta
Official Git repository of R package meta
Stars: ✭ 48 (-14.29%)
Mutual labels:  cran
GDINA
GDINA
Stars: ✭ 23 (-58.93%)
Mutual labels:  cran
rchess
♛ Chess package for R
Stars: ✭ 68 (+21.43%)
Mutual labels:  cran
ctv-finance
CRAN Task View: Empirical Finance
Stars: ✭ 51 (-8.93%)
Mutual labels:  cran
tidytree
🚿A Tidy Tool for Phylogenetic Tree Data Manipulation
Stars: ✭ 34 (-39.29%)
Mutual labels:  cran
UCSCXenaShiny
📊 An R package for interactively exploring UCSC Xena https://xenabrowser.net/datapages/
Stars: ✭ 52 (-7.14%)
Mutual labels:  cran
xfun
Miscellaneous R functions
Stars: ✭ 102 (+82.14%)
Mutual labels:  cran
forestplot
Advanced forest plots in R using grid graphics
Stars: ✭ 29 (-48.21%)
Mutual labels:  cran
rsoi
Import Climate Indices into R
Stars: ✭ 14 (-75%)
Mutual labels:  cran
pbapply
Adding progress bar to '*apply' functions in R
Stars: ✭ 115 (+105.36%)
Mutual labels:  cran
cattonum
Encode Categorical Features
Stars: ✭ 31 (-44.64%)
Mutual labels:  cran
modmarg
Calculating Marginal Effects and Levels with Errors Using the Delta Method
Stars: ✭ 15 (-73.21%)
Mutual labels:  cran
digest
R package to create compact hash digests of R objects
Stars: ✭ 94 (+67.86%)
Mutual labels:  cran
demography
demography package for R
Stars: ✭ 44 (-21.43%)
Mutual labels:  cran

backports

CRAN_Status_Badge R-CMD-check Download Stats

This package provides backports of functions which have been introduced in one of the base packages in R version 3.0.1 or later. The backports are conditionally exported in order to let R resolve the function name to either the implemented backport, or the respective base version, if available. Package developers can make use of new functions or arguments by selectively importing specific backports to support older installations.

Usage

Interactively

Attach the namespace via library(backports).

Note that it is crucial that backports is build against the currently running R version. Do not ignore these kind of warnings for this package.

In packages

  1. Add backports to your DESCRIPTION under Imports.
  2. Add or modify the function .onLoad() (see here) to call the import() function of backports:
    .onLoad <- function(libname, pkgname) {
      backports::import(pkgname)
    }
    You can also selectively import functions:
    .onLoad <- function(libname, pkgname) {
      backports::import(pkgname, c("get0", "dir.exists"))
    }
    If you set force = TRUE, the provided functions will get imported, regardless of the R version:
    .onLoad <- function(libname, pkgname) {
      backports::import(pkgname, "hasName", force = TRUE)
    }
  3. [Optional] Set Depends in your DESCRIPTION to require R (>= 3.0.0).

Importing backports from utils or tools

Backports for functions which are not in the base require additional steps. Usually, you need to to import those functions in the package NAMESPACE. However, this is only possible if such a function really exists, and yields a warning during R CMD check for older versions. There are three possibilities to deal with this:

  1. Completely import the namespaces instead of selectively importing them, e.g. use import(utils) instead of importFrom(utils, hasName) in your NAMESPACE file.
  2. Force-import the function (see above) so that you always use the backport instead of the implementation shipped with R, even for the most recent version of R.
  3. Use a conditional import in your NAMESPACE file, e.g.
    if (getRversion() >= "3.4.0") {
      importFrom(utils, hasName)
    } else {
      importFrom(backports, hasName)
    }
    

Note that the braces {} are necessary in the NAMESPACE file, even though they wouldn't be for regular R code, and that you might get a warning for including backports in the Imports: section of your DESCRIPTION file if you never end up using it.

Backports for R versions prior to 3.2.0

  • base::anyNA()
  • base::dir.exists()
  • base::file.size(), base::file.mode() and base::file.mtime()
  • base::lengths()
  • Argument extra_cols for base::file.info()
  • Argument repeated for utils::URLencode
  • base::isNamespaceLoaded()

Backports for R versions prior to 3.3.0

  • base::startsWith() and base::endsWith()
  • base::strrep()
  • base::trimws()
  • Argument type for utils::capture.output()

Backports for R versions prior to 3.4.0

  • base::.valid.factor()
  • utils::hasName()

Backports for R versions prior to 3.5.0

  • base::...length()
  • base::...elt()
  • base::isFALSE()

Backports for R versions prior to 3.6.0

  • base::warningCondition()
  • base::errorCondition()
  • Argument q for base::dQuote() and base::sQuote()
  • tools::vignetteInfo()
  • base::str2lang()
  • base::str2expression()
  • base::asplit()
  • utils::removeSource() with the capability to strip source from language objects.

Backports for R versions prior to 4.0.0

  • base::deparse1()
  • base::list2DF()
  • tools::R_user_dir()
  • Argument classes for base::suppressWarnings() and base::suppressMessages()

Backports for R versions prior to 4.0.1

  • Argument recycle0 for base::paste().
  • Argument recycle0 for base::paste0().

Backports for R versions prior to 4.1.0

  • base::...names()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].