2009-11-06 24 views
13

He escrito un paquete muy básico en R. De hecho, seguí this tutorial para crear un paquete básico.Hacer que el paquete R funcione en Windows y Linux

Mi paquete funciona muy bien en Linux. por ejemplo:

 
> 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 

Ahora, me llevó a mi carpeta "linmod", lo copió a Windows XP, y trató lo siguiente:

 
> 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' 
> 

bien. Entonces tomé esa carpeta y la coloqué en un archivo .zip. Luego fui a Paquetes -> Instalar paquete (s) desde archivos zip locales ... y seleccioné mi paquete.

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

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

Estoy perplejo. Mi paquete no tiene ningún código nativo (por ejemplo, no hay extensiones escritas en C.)

No dude en descargar .zip from here (el enlace para descargar está en la parte inferior, "Guardar archivo en su PC ")

Respuesta

12

Considere utilizar el excelente servicio CRAN Win-Builder para convertir sus fuentes de paquete R en un archivo zip instalable para Windows.

Simplemente cargue por ftp y, poco después, reciba un aviso sobre su paquete.

+0

Bien, entonces, asumí que si su paquete R no tiene código nativo, entonces debería ejecutarse en ambas ventanas/Linux, ya que el código en sí es multiplataforma. ¿Aparentemente este no es el caso? Y, ¿hay alguna utilidad de línea de comandos que convierta entre los dos formatos? – poundifdef

+0

AFAICT "solía funcionar de esta manera" y todavía se encuentran publicaciones de correo antiguas recomendándolo. En estos días, el formato interno ha cambiado y aparentemente no se puede convertir, de ahí la falta de una herramienta de conversión. Por lo tanto, si lo necesita a menudo, instale la cadena de herramientas de Windows (consulte, por ejemplo, el tutorial de Rob) o vaya con Win-Builder. –

8

No se puede simplemente comprimir el directorio desde linux. Necesitas construir específicamente para Windows. He puesto algunas instrucciones here. Sin embargo, si está desarrollando en alguna otra plataforma primero, entonces la solución de Dirk es más simple.

0

Si el paquete es bastante simple, la siguiente función funciona para mí en Windows para una "MY_PACKAGE_1.0.tar.gz" paquete generado con R (OS: Ubuntu con el comando R CMD build MY_PACKAGE)

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

La opción type="source" es necesaria; de lo contrario, no funciona.

Cuestiones relacionadas