我自己努力制作一个r包。我按照 stackoverflow 上的上一个问题中的说明进行操作 how to develop package for layman 。以下是我根据上一个问题采取的步骤。
在新的 R session 中运行 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")
在 R 中执行以下任务
require(utils) package.skeleton(list = c("randDNA","dna2rna", "compSeq", "myseqdata"), name = "dnatool",environment = .GlobalEnv, path = "c:", force = FALSE)
在 Windows 7 中将系统环境变量路径编辑为以下内容
C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\MinGW\bin; C:\Program Files\R\R-2.14.2\bin\x64;
(在命令行中输入
>path
来检查路径是否正确设置。复制步骤(3)中的文件夹 dnatool 并放入名为 rpackage 的新文件夹中,现在将目录更改为该文件夹(在 DOS 中)
c: \ repackage> R CMD build dnatool c: \ repackage> Rcmd build dnatool
编辑:我有时会得到 dnatool.zip,但有时会得到 dnatool.tar.gx
在命令行 (DOS) 中检查软件包
c: \ repackage> R CMD check dnatool
我能够在 Windows 中将其打包为“dnatool.zip”。
如何编译 MAC 或 unix 源代码?步骤有何不同?
Unix source: dnatool.tar.gz
Mac OS X binary: dnatool.tgz
我需要Mac电脑来做吗?我有 linux virtualbox 并在其中安装了 ubuntu 吗?
编辑:
我应该使用以下命令从步骤 (3) 文件夹 dnatool 获取源代码二进制文件吗?
$ tar -zcvf dnatool.tar.gz/home/dnatool
最佳答案
使用R CMD build
创建的包可以安装在其他操作系统类型上。即使您的包包含 R(c 或 c++)以外的源代码,情况也是如此。仅当您创建二进制发行版时(我认为通过将 --binary 添加到 r cmd 构建调用),包才变得特定于平台。构建软件包所需的工具通常已经安装在 Linux 或 Mac 下。因此,如果您创建一个源代码发行版,它应该可以在所有主要发行版下运行。要创建 mac 二进制文件,您需要一台 mac,或者创建一个交叉编译器环境。第二种选择可能是一个很大的挑战,我说你可以给谷歌。请注意,如果您将包上传到 CRAN,所有包的构建都会为您完成。
关于linux - 在 Windows/Linux 中创建 Mac 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259033/