我在这里阅读了很多关于如何从本地文件,源代码等安装R软件包的帖子,但我仍然遇到安装(我自己的)软件包的麻烦。该软件包是使用RStudio,Roxygen2和RTools(Windows)创建的。
我正在尝试安装的软件包(我这样做是为了给出一条指令让其他人知道如何安装软件包 - 我自己只是从RStudio编译和安装软件包)可以在这里下载:
我还使用write_PACKAGES()
创建了一个PACKAGE描述,该描述位于我的服务器上与包相同的目录中。
现在,如果我尝试install.packages("sjPlot_0.1", contrib.url="http://www.strengejacke.de/R-Stuff/sjPlot/")
,我会收到以下错误消息:
install.packages中的警告: 包'sjPlot_0.1'不可用(对于R版本3.0.2)
如果我使用install.packages("sjPlot_0.1", repos="http://www.strengejacke.de/R-Stuff/sjPlot/")
,我会收到以下错误消息:
源存储库无法检查版本 install.packages出错:行起始'...'格式错误!
此外,通过install.packages("sjPlot_0.1", contriburl="C:/Users/Luedeke/Dropbox/R-Statistics/packages/")
的本地安装失败(此目录包含source-package,binary-package和PACKAGE descr。文件)。
我知道有很多关于如何安装R软件包的帖子,我读了一些 - 也许我错过了正确的软件包,如果有的话,请原谅我再次提出这个问题。
我的问题是:我(或其他人)如何安装我的R包(包括安装依赖项会很好)?
提前致谢 丹尼尔
答案 0 :(得分:3)
您的包裹未通过R CMD check
:
> R CMD check sjPlot_0.1.tar.gz
* using log directory ‘/home/edisz/Downloads/sj_tmp/sjPlot.Rcheck’
* using R version 3.0.2 (2013-09-25)
* using platform: x86_64-pc-linux-gnu (64-bit)
* using session charset: UTF-8
* checking for file ‘sjPlot/DESCRIPTION’ ... OK
* checking extension type ... Package
* this is package ‘sjPlot’ version ‘0.1’
* checking package namespace information ... OK
* checking package dependencies ... ERROR
Namespace dependencies not required:
‘HH’ ‘MASS’ ‘car’ ‘faraway’ ‘foreign’ ‘ggplot2’ ‘lmtest’ ‘plyr’
‘reshape2’ ‘scales’ ‘vcd’
See the information on DESCRIPTION files in the chapter ‘Creating R
packages’ of the ‘Writing R Extensions’ manual.
Exited with status 1.
查看您的DESCRIPTION
文件,您会看到缺少整理和导入字段。
Roxygen负责Collate字段(如果您正在使用RStudio配置roxygen这样做),但是您必须手动将Import字段写入DESCRIPTION。
查看您的一个功能:
#' @title Import SPSS dataset as data frame into R
[snip]
#'
#' @param path the file path to the SPSS dataset
#' @param enc the file encoding of the SPSS dataset
#' @return a data frame containing the SPSS data. retrieve value labels with \code{\link{sji.getValueLabels}}
#' and variable labels with \code{\link{sji.getVariableLabels}}
[snip]
#' @export
sji.SPSS <- function(path, enc=NA) {
# init foreign package
require("foreign")
# import data as data frame
data.spss <- read.spss(path, to.data.frame=TRUE, use.value.labels=FALSE, reencode=enc)
# return data frame
return(data.spss)
}
您看到有一个require('foreign')调用,但没有@import外部标记。
我建议删除行require('foreign')
(如果导入包,则不需要它)并添加@import外部标记。
添加到您的描述文件
Imports:
foreign
对所有其他功能和包执行此操作。
希望这有助于(并且是正确的),