使R包在Windows和Linux中都能正常工作

时间:2009-11-06 03:13:56

标签: r package

我在R中写了一个非常基本的包。事实上,我跟着this tutorial创建了一个基本包。

我的包在linux中运行得很好。例如:

> install.packages("linmod", repos=NULL)
Warning in install.packages("linmod", repos = NULL) :
  argument 'lib' is missing: using '/home/jpgoel/R/i486-pc-linux-gnu-library/2.9'
* Installing *source* package ‘linmod’ ...
** R
** data
** preparing package for lazy loading
** help
*** installing help indices
 >>> Building/Updating help pages for package 'linmod'
     Formats: text html latex example 
** building package indices ...
* DONE (linmod)
> library(linmod)
> data(mod1)
> mod1
Call:
linmod.default(x = x, y = y)

Coefficients:
     Const        Bwt 
-0.3566624  4.0340627 

现在,我拿了我的“linmod”文件夹,将其复制到Windows XP,并尝试了以下内容:

> install.packages("C:\\Documents\ and\ Settings\\foo\\Desktop\\linmod",repos=NULL)
Error in gzfile(file, "r") : cannot open the connection
In addition: Warning messages:
1: In unzip(zipname, exdir = dest) : error 1 in extracting from zip file
2: In gzfile(file, "r") :
  cannot open compressed file 'linmod/DESCRIPTION', probable reason 'No such file or directory'
> 

好。然后我把那个文件夹放到.zip文件中。然后我去了Packages - >从本地zip文件安装包...并选择我的包。

> utils:::menuInstallLocal()
updating HTML package descriptions

> library(linmod)
Error in library(linmod) : 'linmod' is not a valid installed package

我很难过。我的包没有任何本机代码(例如,没有用C语言编写的扩展名。)

随意下载.zip from here(下载链接一直在底部,“将文件保存到您的电脑”)

3 个答案:

答案 0 :(得分:12)

考虑使用优秀的CRAN Win-Builder服务将您的R包源转换为Windows的可安装zip文件。

您只需通过ftp上传,然后不久就会收到有关您的包裹的通知。

答案 1 :(得分:8)

你不能只是从linux压缩目录。您需要专门为Windows构建。我已经提出了一些指示here。但是,如果您首先在其他平台上进行开发,那么Dirk的解决方案就更简单了。

答案 2 :(得分:0)

如果软件包相当简单,以下功能在Windows上适用于我的软件包" MY_PACKAGE_1.0.tar.gz"使用R生成的(OS:Ubuntu,命令为R CMD build MY_PACKAGE

install.packages("MY_PACKAGE_1.0.tar.gz", repos=NULL, type="source")

选项type="source"是必要的,否则它不起作用。