How to install a package not located on CRAN repository?
Solution 1
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.
Solution 2
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
- Extract from tar.gz to .tar
- Extract from .tar
- 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")
- Load all functions
for (i in list.files()){source(i)}
To use devtools
- Install devtools
library("devtools")
- Setwd to folder containing .tar.gz file
install("RGoogleTrends_0.2-1.tar.gz")
To use Rtools
- Download correct version from http://cran.r-project.org/bin/windows/Rtools/
- Install from the .exe
- Check whether you need to anything in http://cran.r-project.org/bin/windows/Rtools/Rtools.txt
- Run R from your command line (cmd into search in start) - see
- Setwd to folder containing .tar.gz file
- R CMD INSTALL *.tar.gz
My preferred approach is devtools
Solution 3
I was having all sorts of issues with errors like:
not supported in current version
cannot find DEPENDENCIES
cannot unzip
If you are running windows and installed for all users and are running as a normal user (which you should be for all sorts of reasons) installing packages is interesting.
What I ended up doing was
close R
open R as admin
load base package
I had already downloaded the packages so I could install offline and they were in f:\software\rcontrib
then run:
files=list.files(path="f:/software/rcontrib",pattern="*.zip",include.dirs=TRUE)
for (i in seq(along=files)){install.packages(files[i],repos=NULL)}
This will bulk load packages from the local directory / common file share / non-internet location.
Then you can exit R. Running as any user on the machine you should be able to use the packages.
This will hopefully save people the couple of hours I wasted trying to bulk load and overcome errors in R which were actually windows security.
Marc in the box
Updated on July 18, 2022Comments
-
Marc in the box almost 2 years
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 withlibrary
, the following error occurs:> library(RGoogleTrends) Error in library(RGoogleTrends) : ‘RGoogleTrends’ is not a valid installed package
What am I doing wrong here?