简体   繁体   中英

Minimum required R version for base packages?

Is there a way to find out, which R version is required for the base, stats, etc. package function I use in my package?

For instance, I used own code to get the residual SD, and later replaced it with stats::sigma() . However, sigma() requires R version >= 3.3. My package, in turn, should depend on R >= 3.2, and neither package checks, nor CRAN submission warned about the wrong specification of R dependency in my DESCRIPTION file...

There doesn't seem to be a way to do it programmatically in a reliable way. The easiest way to do it in general would be to process the NEWS. The below code extracts all sentences in NEWS which have 'new function' in them:

library(data.table)
library(stringr)
db <- as.data.table(news())
db <- db[Category == "NEW FEATURES" & grepl("[Nn]ew function[^a]", Text), .(Text, Version)]
db[, Text := str_replace_all(Text, "\n", "")]
db[, Text := str_extract(Text, "[Nn]ew function.*?\\.(?=($| ))"), by = Version]

> db
                                                                                                                                                                                                                 Text Version
 1:                                                                                                                                                                                     new function .valid.factor().   3.4.0
 2:                                                                                      New function check_packages_in_dir_details() in package tools for analyzing package-check log files to obtain check details.   3.4.0
 3:                                                                                             New functions validEnc() and validUTF8() to give access to the validity checks for inputs used by grep() and friends.   3.3.0
 4:                                                                                                                                           New function strrep() for repeating the elements of a character vector.   3.3.0
 5:                                                                                                  New function grouping() returns a permutation that stably rearranges data so that identical values are adjacent.   3.3.0
 6:                                                                                                                                       New function .traceback() returns the stack trace which traceback() prints.   3.3.0
 7:                                    New functions makevars_user() and makevars_site() in package tools to determine the location of the user and site specific Makevars files for customizing package compilation.   3.3.0
 8:                                                                                                New function dir.exists() in package base to test efficiently whether one or more paths exist and are directories.   3.2.0
 9:                                                                                                                         new function debuggingState() has been added, allowing to temporarily turn off debugging.   3.2.0
10:                                                                                                           New function extSoftVersion() to report on the versions of third-party software in use in this session.   3.2.0
11:                                                                                                                                                       New function isNamespaceLoaded() for readability and speed.   3.2.0
12:                                                                                                                                                   New function trimws() for removing leading/trailing whitespace.   3.2.0
13: New function hsearch_db() in package utils for building and retrieving the help search database used by help.search(), along with functions for inspecting the concepts and keywords in the help search database.   3.2.0
14:                                                                                                          New function .getNamespaceInfo(), a no-check version of getNamespaceInfo() mostly for internal speedups.   3.2.0
15:                                                                                                                                          New function toTitleCase() in package tools, tailored to package titles.   3.2.0
16:                                                                                                          New function pcre_config() to report on some of the configuration options of the version of PCRE in use.   3.1.3
17:                                                                                                                               New function icuGetCollate() to report on the ICU collation locale in use (if any).   3.1.2
18:                                             new function promptImport(), to generate a help page for a function that was imported from another package (and presumably re-exported, or help would not be needed).   3.1.1
19:                                                                                         New function anyNA(), a version of any(is.na(.)) which is fast for atomic vectors, based on a proposal by Tim Hesterberg.   3.1.0
20:                                                                                                                               new function find_gs_cmd() in the tools package to locate a GhostScript executable.   3.1.0
21:                                                                                         New functions cospi(x), sinpi(x), and tanpi(x), for more accurate computation of cos(pi*x), etc, both in R and the C API.   3.1.0
22:                                                                                                                                                New function agrepl() which like grepl() returns a logical vector.   3.1.0
23:                                                                                                                                               new function, La_version(), to report the version of LAPACK in use.   3.0.3
24:                                                                                          New functions cite() and citeNatbib() have been added, to allow generation of in-text citations from "bibentry" objects.   3.0.0
25:                                                                                                                     new function rep_len() analogous to rep.int() for when speed is required (and names are not).   3.0.0
26:                                                                    New functions bitwNot(), bitwAnd(), bitwOr() and bitwXor(), using the internal interfaces previously used for classes "octmode" and "hexmode".   3.0.0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM