Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install a package not located on CRAN repository?

I am trying to use Google Trends data and have come across a few packages that are not on CRAN (GTrends, RGoogleTrends).

I like what I have seen from the RGoogleTrends package at this blog, and wanted to give it a try. The RGoogleTrends package is located here: http://www.omegahat.org/RGoogleTrends/

First of all, I am using a Windows OS and there is an uption in my R console:

>Packages>Install package(s) from local zip drives ...

This results in the following:

> utils:::menuInstallLocal()
Error in read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) : 
  cannot open the connection
In addition: Warning messages:
1: In unzip(zipname, exdir = dest) : error 1 in extracting from zip file
2: In read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) :
  cannot open compressed file 'RGoogleTrends_0.2-1.tar.gz/DESCRIPTION', probable reason 'No such file or directory'

I'm guessing this has to do with the fact that the file is as a .gz and not a .zip file.

So, I unzipped the .gz file outside of R and then zipped it into a .zip file (there's got to be a better way). Now I can install the .zip file, but when I try and load it with library, the following error occurs:

> library(RGoogleTrends)
Error in library(RGoogleTrends) : 
  ‘RGoogleTrends’ is not a valid installed package

What am I doing wrong here?

like image 250
Marc in the box Avatar asked Jun 21 '13 08:06

Marc in the box


2 Answers

You will need R version 3 for this, which you can get here for example: http://cran.cnr.berkeley.edu/bin/windows/base/R-3.0.1-win.exe

Then open R and type:

install.packages("devtools")
require(devtools)
install_url("http://www.omegahat.org/RGoogleTrends/RGoogleTrends_0.2-1.tar.gz")
require(RGoogleTrends)
ls("package:RGoogleTrends")

You may get few warnings in the process. Ignore them. you should then be able to use the package.

like image 168
Dmitrii I. Avatar answered Sep 27 '22 00:09

Dmitrii I.


I think a package builds differently for linux than to windows so a .gz version can't be converted to .zip

This link indicates you should be able to use just the unzipped version... http://decisionstats.com/2013/04/26/using-a-linux-only-package-in-windows-rstats/

The comment in it suggests devtools or Rtools, both of which will allow direct installation from the gz file

To unzip and use directly

  1. Extract from tar.gz to .tar
  2. Extract from .tar
  3. Set the working directory to the R subfolder e.g. Setwd( "C:\\Users\\x\\Documents\\RGoogleTrends_0.2-1.tar\\RGoogleTrends_0.2-1\\RGoogleTrends\\R")
  4. Load all functions for (i in list.files()){source(i)}

To use devtools

  1. Install devtools
  2. library("devtools")
  3. Setwd to folder containing .tar.gz file
  4. install("RGoogleTrends_0.2-1.tar.gz")

To use Rtools

  1. Download correct version from http://cran.r-project.org/bin/windows/Rtools/
  2. Install from the .exe
  3. Check whether you need to anything in http://cran.r-project.org/bin/windows/Rtools/Rtools.txt
  4. Run R from your command line (cmd into search in start) - see
  5. Setwd to folder containing .tar.gz file
  6. R CMD INSTALL *.tar.gz

My preferred approach is devtools

like image 30
Steph Locke Avatar answered Sep 23 '22 00:09

Steph Locke