Import R package from Github when developing R package - r

I am trying to develop my own R package, which relies on the R package enrichR (from wjawaid/enrichR). This package is available on both CRAN and Github, but due to a bug in their CRAN version, I want to exclusively use their Github package (v2.1). I've followed
Create an R package that depends on another R package located on GitHub to try and adjust my DESCRIPTION so that I don't get that bug, but it hasn't been working so far. This is what I've tried:
Imports: enrichR (>= 2.1)
Remotes: wjawaid/enrichR
How would I be able to import the Github version of enrichR specifically into my package? I'm not having issues when I use enrichR outside of this package.

I believe what you have is sufficient as long as you use remotes::install_local or remotes::install_github or similar to install your package. If you are using the basic install.packages or R CMD INSTALL to install it, you need to put a copy of enrichR 2.1 in a CRAN-style repository, and refer to that repository in an Additional_repositories field in your DESCRIPTION file. This is easier than it sounds, using drat: see https://github.com/drat-base/drat .

Related

R Package Dependency in Github via Remotes not working

I'm developing an R package in Github (ConceptionTools) that depends on another R package (CreateFlowChart), also in Github. I have followed the instructions for defining remote dependencies. My DESCRIPTION file includes:
Imports: CreateFlowChart
Remotes: github::IMI-ConcePTION/CreateFlowChart
However, when I install my package, with the command:
devtools::install_github("IMI-ConcePTION/ConceptionTools")
This dependency is not installed. I simply get "skipping 1 packages not available: CreateFlowChart". It doesn't appear to be trying to use the Remote, since there is no error related to Github.
When I install the dependency directly, that works:
devtools::install_github("IMI-ConcePTION/CreateFlowChart")
Does anybody have any idea of what could be going on here? I'm racking my brain, as it seems to be a quite straightforward case of what the documentation shows. I'm using R 4.0.3 (on Windows 10) and devtools 2.3.2.
There was a typo in the name of the dependency package in its DESCRIPTION file.
This does not make the package fail when installing it directly, but it leads devtools not to find it as a dependency.

Bioconductor packages Not Installing with biocViews specification in Description section of Package

Problem:
I am developing an R package and one of the dependent packages is multtest.
It's only available on Bioconductor as here. I am using devtools to build the package. And, when I run devtools::install() on R console, I would like multtest to automatically install as with my other CRAN packages if it is not already installed. I do know how to install Bioconductor packages manually.
Researched Solutions:
The following links suggest that I should put
biocViews:
in the Description file of the package for automatic installation of the Bioconductor packages.
biocViews: is in the line above Imports: (I am not sure where it is placed matters as much?) and the Bioconductor package to be installed is put under Imports: as here
biocViews: is in the line above Imports: and the Bioconductor package to be installed is put right after like biocViews: multtest. This exact answer is at the end of a non-voted thread in response to Vivian by Vivekbhr as here
I have also followed up and checked the description file of the packages which rely on Bioconductor as here
Attempted Solutions:
I have followed those research solutions by putting multtest along with biocViews:, below biocViews:, under Imports:. All of them came back with package dependency or package not found errors as in the pictures below.
biocViewsinOneLine
biocViewsinSeparateLine
biocViewsunderImports
Then, I manually re-installed multtest and it works. However, I still would like to have the automatic installation capability as mentioned here under the Imports section in Hadley's book as here
Is it possible? Am I misunderstanding something or doing something wrong?
Thank you very much!
I have tried your 3rd method, and it could pass the CMD check. Maybe update your devtools?
You need to add multtest under Imports in DESCRIPTION.
However, as `multtest' is from Bioconductor link, add to DESCRIPTION
biocViews: Software, BiologicalQuestion

R package listed on CRAN but not in available package

I want to install a package that is listed in https://cran.r-project.org/web/packages/available_packages_by_name.html as available in CRAN, but when I check in R the install packages menu or the available.packages() command, I can't see the package there.
Do I need to do something different to install those packages? Why aren't those packages available?
The packages I'm interested on are WikipediR ( https://cran.r-project.org/web/packages/WikipediR/index.html ), WikidataR and WikipediaR.
If it matters, I'm using R 2.15.0 in Windows XP.
See the documentation for ?available.packages...
By default, the return value includes only packages whose version and
OS requirements are met by the running version of R, and only gives
information on the latest versions of packages.
In other words... your R 2.15 is likely too old for the package you are looking to download.
You can try to download the package source manually add the package to the package library usually found somewhere like "win-library/2.15/" but like Cory mentioned it is likely that the older version of R does not support the package build.
The advice given so far is a bit incomplete although I do agree you need to update your R version if you want to use these packages. Looks like they don't need compilation so you might have been able to either install from a local copy or drop R code in, but critically they depend on httr which requires R 3.0.0 or above. They were released only relatively recently, so there will be no Windows binaries from back in 2012. (Your copy of R is from 30-Mar-2012.) Look in the DESCRIPTION file which is presented in a nice web format at the CRAN/package listing:
https://cran.r-project.org/web/packages/WikidataR/index.html
Imports: httr, jsonlite, WikipediR
Suggests: testthat, knitr, pageviews
# only one version of these two
https://cran.r-project.org/src/contrib/Archive/WikidataR/WikidataR_1.0.0.tar.gz
https://cran.r-project.org/src/contrib/Archive/WikipediaR/WikipediaR_1.0.tar.gz
# pick one of these
https://cran.r-project.org/src/contrib/Archive/WikipediR/

Create an R package that depends on another R package located on GitHub

I am creating an R package on GitHub, LW1949, that depends on another R package on GitHub, jvamisc. When I try to install LW1949 using
require(devtools)
devtools::install_github("user/LW1949")
I get the message: Skipping 1 packages not available: jvamisc.
How can I point the import(jvamisc) part of the LW1949 package (in NAMESPACE) to Github instead of CRAN to find this dependency?
Surely this question has been asked and answered before, but I was not successful searching for it (perhaps because the search terms are so common - R, package, GitHub, etc.). I did stumble across Travis CI and Packrat, neither of which I've used. No idea if they would help. I would prefer as simple a fix as possible. (Wouldn't we all?)
I'm using R version 3.1.3 for Windows in R Studio Version 0.98.1103.
This question seems to have been answered quite recently, addressed in this issue of the devtools' github repository.
Package developer POV:
do:
usethis::use_package("jvamisc")
devtools::document()
to add the dependency in the Imports field of your DESCRIPTION file.
manually add a field "Remotes:" in the DESCRIPTION file, specifying where on github R should look for the package:
#in DESCRIPTION
Imports: ...,
jvamisc,
...
Remotes: JVAdams/jvamisc
End-user POV:
the end user has to have the latest development version of devtools (or at least the one corresponding to commit #f21ca3516c). You have to somehow 'force him' to update his devtools version (I guess just put this in the installation instructions... Can't think of a better way)
devtools::install_github(“hadley/devtools”, ref = “f21ca3516c”)
Restart the R Session on unload/reload the devtools package.
do the usual install_github:
require(devtools)
devtools::install_github("user/LW1949")
I guess this functionality will be added sooner or later to the CRAN version of devtools, so there will be no need for the user to fetch the dev version and he would go directly to step 3).
The steps and additional options are detailed in this vignette.
The actual solution seems to add in your DESCRIPTION file the line
Remotes: hadley/testthat
see the documentation of devtools :
# Git
Remotes: git::https://github.com/hadley/ggplot2.git
# Bitbucket
Remotes: bitbucket::sulab/mygene.r#default, dannavarro/lsr-package
# Bioconductor
Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase
# SVN
Remotes: svn::https://github.com/hadley/stringr
# URL
Remotes: url::https://github.com/hadley/stringr/archive/master.zip
# Local
Remotes: local::/pkgs/testthat
# Gitorious
Remotes: gitorious::r-mpc-package/r-mpc-package

How to force older packages to install on newer versions of R?

I cannot install proj4string into my current version of R (2.15.1):
Warning message:
package ‘proj4string’ is not available (for R version 2.15.1)
I assume this is because 2.15.1 is fairly new and the package just hasn't been updated. Is there a general mechanism for forcing R to install an older version of a binary package (realizing that there may be bugs that result)?
(upgraded from a comment)
Download the relevant package (zip, tarball, whatever) from the archives and install it locally, e.g.
install.packages("proj4string_x.y.z.zip",repos=NULL)
(this is not literal: x.y.z represents the package version)
sorry to bump this post again, but i had the same problem . then i found that I can use the following lines for the package:
install.packages("devtools")
devtools::install_github("slowkow/ggrepel")
replaced "slowkow/ggrepel" by the package and github repo.
What i noticed that many packages on github will have details to that. Hope that helps.
You can use install_version from the package devtools to install a specific package version.
To find the package version:
Search for the CRAN page of the package. E.g. for ggmap it is https://CRAN.R-project.org/package=ggmap
Check the archived packages. See heading "Downloads" and "Old Sources:"
Example code for package ggmap
devtools::install_version(
"ggmap",
version = "2.6",
repos = "http://cran.us.r-project.org"
)

Resources