我正在尝试将一些软件包移植到离线(Windows)计算机上的R安装中.
从CRAN(比方说data.table),过程:1)在单独的在线计算机上下载.zip 2)拇指驱动器 - >离线计算机3)通过install.packages("....zip"...)完全按预期工作安装.
但是,当我尝试从GitHub安装时,此过程中断了.
当我运行install.packages(注:我使用的是type="binary"和repos=NULL; type="win.binary"不执行任何操作要么)上的zip文件(通过转到页包,如获得https://github.com/Rdatatable/data.table,并使用"下载.拉链"功能",出了点问题.
没有错误消息(并且没有任何新设置verbose=TRUE),并且包文件夹被添加到我的库中(即,当我在那里导航时,我可以看到名为"data.table-master"的文件夹),但是library(data.table)导致错误:没有包名为data.table".我还注意到,虽然CRAN的安装完成了"包data.table成功解压缩并检查MD5总和",但我没有从尝试的GitHub安装中得到这样的消息.
这里发生了什么?我尝试了所有可能的潜在客户?install.packages,但鉴于我并没有真正收到错误消息,因此很难确定究竟是什么问题.
更多背景:R版本是3.2.0.很难复制粘贴,sessionInfo因为该计算机不在线,不确定还有什么可能相关.
鉴于@下面r2evans的意见,我也尝试使用type="source"带install.packages,而这并没有工作,要么(同样的问题-尽管有我的一个'data.table主’文件夹.libPaths()的地址,library(data.table)给出了有没有这样的包错误) .
不过,我确实从使用verbose=TRUE这个时间获得了更多的输出:
system(cmd0):
C:/PROGRA~1/R/R-32~1.0/bin/x64/R CMD INSTALL1):成功了
'C:/PROGRA~1/R/R-32~1.0/bin/x64/R CMD INSTALL -l "C:\Users\Mike\Documents\R\win-library\3.2" "E:/data.table-master.zip"'
Rol*_*and 17
假设你在胜利机器上有Rtools和devtools.
第1步: 下载源zip.
第2步:复制到win机器并在那里解压缩内容.
步骤3:运行以下代码(根据需要调整路径):
library(devtools)
source <- devtools:::source_pkg("E:/temp/data.table-master")
install(source)
library(data.table)
#loads 1.9.7
Run Code Online (Sandbox Code Playgroud)
不确定这是解决方案还是解决方法.给定一个R包目录结构源的zip文件:
在shell上:
~$ unzip data.table-master.zip
## optional renaming
~$ mv data.table-master data.table
## create the new
~$ tar czf data.table.tar.gz data.table
Run Code Online (Sandbox Code Playgroud)
可能还有其他工具允许您以不同的格式提取和重新存档它们.由于我倾向于shell级别的访问和控制,我倾向于使用这些简单的工具.
在R:
install.packages("data.table.tar.gz", type="source", repos=NULL)
Run Code Online (Sandbox Code Playgroud)
(除非已经安装了所有依赖项,否则这将不会成功.)
您可以使用install_localfrom从devtools下载的zip安装Github软件包,例如:
library("devtools")
install_local(path = "data.table-master.zip")
Run Code Online (Sandbox Code Playgroud)
但是您必须首先安装所有依赖项。