Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R devtools:document Dependency package not available

Tags:

r

devtools

Hi I am following the tutorial here from Hilary and here from Hadley Wickham trying to create a dummy package.

However, my package need some external dependencies XML and RCurl in this case, when I run the command document, it will complain that:

> setwd('/home/datafireball/projects/Rprojects/rgetout/rgetout')
> document()
Error: could not find function "document"
> library(devtools)
> document()
Updating rgetout documentation
Loading rgetout
Loading required namespace: XML
Error in (function (dep_name, dep_ver = NA, dep_compare = NA)  : 
  Dependency package XML not available.
> 

Here is my DESCRIPTION file.

Package: rgetout
Title: A R package to get all the outlinks for a given URL
Version: 0.1
Authors@R: "Eric Cartman <[email protected]> [aut, cre]"
Description: This package is intended to include as much web extraction functionality as much as     possible. It starts with one function. getout will extract
all the outlinks for a given URL with a user-agent that you can customize.
Depends: R (>= 3.0.2)
Imports:
    XML,
    RCurl
License: MIT
LazyData: true

Here is the source code github repo if you want to get more info.

like image 508
B.Mr.W. Avatar asked Oct 03 '14 03:10

B.Mr.W.


2 Answers

If you are having problems with this, even when you have the packages installed and loaded, I suggest you to do the following.

  • Delete the Imports: and Suggests: entries of your DESCRIPTION file.
  • Make sure you have usethis working by doing library(usethis)
  • Now start adding the libraries to your DESCRIPTION file, by running the following command on your console: usethis::use_package("dplyr") for any Imports: you need. Repeat this step for every library that is required.

In my case, dplyr was the one refusing to load. You can decide where the package will be located by doing: usethis::use_package("dplyr", "Suggests").

like image 81
Carrol Avatar answered Nov 16 '22 19:11

Carrol


It is assumed that you will have the required tools / dependencies for developing a package when you are doing so.

utils::install.packages has a dependencies argument that will attempt to install uninstalled packages on which a package depends / (in whichever way they are dependent (suggests/ depends/linkingTo).

devtools::install_github will perform similarly.

Installing a package and documenting it as a component of development are quiet different activities .

like image 28
mnel Avatar answered Nov 16 '22 21:11

mnel