为外行编写的R包开发说明



我从来没有做过,但是想开发一个国内使用的R包:

例如下面是我的函数和一个数据:

# random DNA function 
randDNA = function(n){
paste(sample(c("A", "C", "T", "G"), n, replace = TRUE), collapse = "")
}
# DNA to RNA function 
dna2rna <- function(inputStr) { 
  if (!is.character(inputStr)) 
    stop("need character input") 
  is = toupper(inputStr) 
  chartr("T", "U", is) 
}
# complementary sequence function 
compSeq <-  function(inputStr){
 chartr("ACTG", "TGAC", inputStr)
 }
# example data
dnaseq1 <- c("ATTGTATCTGGGTATTTCCCTTAATTGGGGCCTTT")
dnaseq2 <- c("TGGGGTAAACCCGGTTTAAAATATATATATTTTT")
myseqdata <- data.frame(dnaseq1, dnaseq2)
save(myseqdata, file = "myseqdata.RData")

我尝试使用utils包来开发框架,但是有一个问题:

require(utils)
package.skeleton(list = c("randDNA","dna2rna", "compSeq", "myseqdata"),  
     name = "dnatool",environment = .GlobalEnv, path = "c:", force = FALSE)

Creating directories ...
    Creating DESCRIPTION ...
    Creating Read-and-delete-me ...
    Saving functions and data ...
    Making help files ...
    Error in .find.package(pkgName, lib.loc, verbose = verbose) : 
      there is no package called 'dnatool'
    Error in package.skeleton(list = c("randDNA", "dna2rna", "compSeq", "myseqdata"),  : 
      Error in .find.package(pkgName, lib.loc, verbose = verbose) : 
      there is no package called 'dnatool'

我对为什么我得到这个错误有疑问。当我查看C:dnatool时,我可以看到用data和r函数创建的文件夹。

现在我想把它编译成一个包。当我阅读说明时,我使用命令提示符来打包它:我使用的是Windows 7。

c:> R CMD build dnatool 

显然不起作用。是因为上述问题吗?我应该走哪条路?如果有R exe或C:或C: dnatool

我将感谢你的帮助,如果你能在R"外行"风格的帮助…

编辑:我下载了Rtools Rtools212.exe for R version 2.12.2:http://www.murdoch-sutherland.com/Rtools/这些工具安装在C:Rtools

目录下。
Directory of c:Rtools
09/18/2011  08:08 AM    <DIR>          .
09/18/2011  08:08 AM    <DIR>          ..
09/18/2011  08:07 AM    <DIR>          bin
03/31/2010  09:50 AM            18,347 COPYING
09/18/2011  08:08 AM    <DIR>          MinGW
09/18/2011  08:09 AM    <DIR>          MinGW64
10/04/2010  10:21 AM             1,836 README.txt
10/07/2010  08:26 AM             3,676 Rtools.txt
09/18/2011  08:10 AM           728,889 unins000.dat
09/18/2011  08:07 AM         1,182,143 unins000.exe
               5 File(s)      1,934,891 bytes
               5 Dir(s)  36,454,875,136 bytes free

我的框架包在C:dnatool:

 Directory of c:dnatool
09/17/2011  11:14 PM    <DIR>          .
09/17/2011  11:14 PM    <DIR>          ..
09/17/2011  11:14 PM    <DIR>          data
09/17/2011  11:14 PM               304 DESCRIPTION
09/17/2011  11:14 PM    <DIR>          man
09/17/2011  11:14 PM    <DIR>          R
09/17/2011  11:14 PM               385 Read-and-delete-me
               2 File(s)            689 bytes
               5 Dir(s)  36,455,153,664 bytes free

我的R程序是C:R....

我的困惑是在以下说明:应该在哪里执行它们?我相信命令提示符。在哪个目录下?

* Run R CMD build to build the package tarball.
* Run R CMD check to check the package tarball. 

************ Edits2:解决部分问题,但新的错误 ******************************通过对路径的建议,解决了第一轮问题。我必须手动更改路径为:

C:Rtoolsbin;C:Rtoolsperlbin;C:RtoolsMinGWbin;
   C:Program filesRR-2.12.2binx64;

我将骨架存储到新目录。通过在命令提示符中运行以下命令:

C:UsersOwnerDocumentsrpackages> Rcmd INSTALL --build dnatool
* installing to library 'C:/PROGRA~1/R/R-212~1.2/library'
* installing *source* package 'dnatool' ...
** R
** data
** preparing package for lazy loading
** help
Warning: C:/Users/Owner/Documents/rpackages/dnatool/man/dnatool-package.Rd:34: A
ll text must be in a section
Warning: C:/Users/Owner/Documents/rpackages/dnatool/man/dnatool-package.Rd:35: A
ll text must be in a section
*** installing help indices
Error in Rd_info(db[[i]]) : Rd files must have a non-empty title.
See chapter 'Writing R documentation' in manual 'Writing R Extensions'.
* removing 'C:/PROGRA~1/R/R-212~1.2/library/dnatool

我没有成功创建包,在上面的窗口中看到错误。这是什么意思?我在文件dnatool-package的第34和35行添加了相关信息.Rd……帮助…谢谢…

我自己回答我的问题,所以它将保持未回答,如果事实是部分的。有了这里的建议,问题已经解决了,通过设置以下更改路径:

C:Rtoolsbin;C:Rtoolsperlbin;C:RtoolsMinGWbin;
   C:Program filesRR-2.12.2binx64;
I stored the skeleton to new directory.

通过在命令提示符中运行以下命令:

C:UsersOwnerDocumentsrpackages> Rcmd INSTALL --build dnatool

最新更新