[R-pkg-devel] Package builds, installs, and runs but does not pass devtools::check()
Michael Hannon
jmh@nnon@ucd@vi@ @ending from gm@il@com
Tue Jul 17 11:27:40 CEST 2018
Thanks to John and Zhian for their recent and informative comments.
Regarding check() and NSE: the moral seems to be that a little
learning is a dangerous thing. I'm off to try to bring quosure to
this issue.
-- Mike
On Mon, Jul 16, 2018 at 2:38 PM, Zhian Kamvar <zkamvar using gmail.com> wrote:
> Using dplyr like that is for exploratory data analysis. You'll want to refer
> to dplyr's "Programming with dplyr" vignette for using dplyr in a package:
>
> https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html
>
> Hope that helps.
>
> On Jul 16, 2018, at 22:13 , Michael Hannon <jmhannon.ucdavis using gmail.com>
> wrote:
>
> Thanks, Georgi. I've changed my approach and now do what I gather is
> recommended practice: put all external package names into the
> "Imports" section of the DESCRIPTION file and then use the
> fully-qualified names for functions from those packages, as:
>
> dplyr::select()
>
> The "check" operation is still not entirely "happy" with me, but it
> doesn't flag any errors, and the package builds and runs.
>
> BTW, one source of "complaints" from "check()" is evidently the use of
> NSE in the tidyverse functions. For instance, the line:
>
> next_data_frame %>% dplyr::select(-amount,
>
> generates the message:
>
> standardize_format: no visible binding for global variable ‘amount’
>
> where, of course, "amount" is one of the column headings in
> "next_data_frame". There seems to be no harm done by this, and I plan
> to ignore such messages, but if there's some additional wisdom that
> applies here, I'd be happy to receive it.
>
> -- Mike
>
>
> On Sun, Jul 15, 2018 at 12:05 AM, Georgi Boshnakov
> <georgi.boshnakov using manchester.ac.uk> wrote:
>
>
> It seems that the R session used by 'check' doesn't look in the library used
> by your interactive session. This discrepancy may happen since the check
> tools do not load the same Renviron files as interactive sessions. This may
> result in different libraries in interactive and 'check' sessions. See
> ?Startup, especially section Note.
> It is difficult to give more specific advice without details of your setup.
>
>
> Hope this helps,
> Georgi Boshnakov
>
>
> ________________________________________
> From: R-package-devel [r-package-devel-bounces using r-project.org] on behalf of
> Michael Hannon [jmhannon.ucdavis using gmail.com]
> Sent: 15 July 2018 02:13
> To: r-package-devel using r-project.org
> Subject: [R-pkg-devel] Package builds, installs, and runs but does not pass
> devtools::check()
>
> Greetings. I'm working on a small package, and I'm using the devtools
> functions to create, build, etc., the package.
>
> As indicated in the subject line, I get no errors when I do:
>
> build()
> install()
>
>
> When I run a separate R session and load the package, i.e.,
>
> library(my_pkg)
>
>
> the package loads without error, and the two exported functions appear
> to work as advertised.
>
> OTOH, if I include devtools::check() in the construction of the
> package, I consistently get an error:
>
> * installing *source* package ‘my_pkg’ ...
> ** R
> ** preparing package for lazy loading
> Error in loadNamespace(from, lib.loc = .library) :
> there is no package called ‘dplyr’
> Error : unable to load R code in package 'my_pkg'
>
> Clearly there *is* a package called "dplyr" on my system (see the
> session info below, for instance). And, as I've mentioned, the code
> *does* run, and I can watch it successfully reading CSV files.
>
> Here's the relevant part of my DESCRIPTION file:
>
> Depends: R (>= 3.4.4)
> Imports: readr,
> dplyr,
> ggplot2,
> purrr,
> magrittr
>
> I suspect the problem may be that I'm misunderstanding something about
> the `import::from()` function, which I'm using for the first time to
> load required functions into my code. In each of the three files that
> use dplyr I have the line:
>
> import::from(dplyr, mutate, filter, rename, select, setdiff, slice,
> "%>%")
>
> I've tried:
>
> (1) putting that line in just one of the files (the lexically first one)
> (2) including different subsets of dplyr functions, as needed, in
> the various files
>
> Needless to say, I haven't seen any improvement with any of the above
> (or any of the other thrashing I've done).
>
> If you can point me in the right direction, I'd appreciate it. Thanks.
>
> -- Mike
>
>
> session_info()
>
> Session info
> ------------------------------------------------------------------
> setting value
> version R version 3.4.4 (2018-03-15)
> system x86_64, linux-gnu
> ui X11
> language en_US
> collate en_US.UTF-8
> tz America/Los_Angeles
> date 2018-07-14
>
> Packages
> ----------------------------------------------------------------------
> package * version date source
> assertthat 0.2.0 2017-04-11 CRAN (R 3.3.3)
> base * 3.4.4 2018-03-16 local
> bindr 0.1.1 2018-03-13 CRAN (R 3.4.3)
> bindrcpp 0.2.2 2018-03-29 CRAN (R 3.4.4)
> compiler 3.4.4 2018-03-16 local
> crayon 1.3.4 2017-09-16 CRAN (R 3.4.1)
> datasets * 3.4.4 2018-03-16 local
> devtools * 1.13.6 2018-06-27 CRAN (R 3.4.4)
> digest 0.6.15 2018-01-28 CRAN (R 3.4.3)
> dplyr * 0.7.6 2018-06-29 CRAN (R 3.4.4)
> glue 1.2.0 2017-10-29 CRAN (R 3.4.2)
> graphics * 3.4.4 2018-03-16 local
> grDevices * 3.4.4 2018-03-16 local
> magrittr 1.5 2014-11-22 CRAN (R 3.2.2)
> memoise 1.1.0 2017-04-21 CRAN (R 3.3.3)
> methods * 3.4.4 2018-03-16 local
> pillar 1.3.0 2018-07-14 CRAN (R 3.4.4)
> pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.0)
> purrr 0.2.5 2018-05-29 CRAN (R 3.4.4)
> R6 2.2.2 2017-06-17 CRAN (R 3.4.0)
> Rcpp 0.12.17 2018-05-18 CRAN (R 3.4.4)
> rlang 0.2.1 2018-05-30 CRAN (R 3.4.4)
> stats * 3.4.4 2018-03-16 local
> tibble 1.4.2 2018-01-22 CRAN (R 3.4.3)
> tidyselect 0.2.4 2018-02-26 CRAN (R 3.4.3)
> utils * 3.4.4 2018-03-16 local
> withr 2.1.2 2018-03-15 CRAN (R 3.4.3)
>
>
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
>
More information about the R-package-devel
mailing list