R语言安装包时遇到arch - i386错误时解决方案

Posted jianiliunier

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言安装包时遇到arch - i386错误时解决方案相关的知识,希望对你有一定的参考价值。

安装DWD包时遇到以下问题(因为在CRAN中不存在此包)
 
错误如下:
* installing *source* package ‘DWD‘ ...
** 成功将‘DWD‘程序包解包并MD5和检查
** libs
 
*** arch - i386
Warning: 运行命令‘make -f "Makevars" -f "C:/PROGRA~1/R/R-33~1.3/etc/i386/Makeconf" -f "C:/PROGRA~1/R/R-33~1.3/share/make/winshlib.mk" SHLIB="DWD.dll" OBJECTS="mexMatvec_c.o mexexpand_c.o mexqops_c.o mexschurfun_c.o mextriang_c.o mextriangsp_c.o"‘的状态是127
ERROR: compilation failed for package ‘DWD‘
* removing ‘C:/Users/Jeannie/Documents/R/win-library/3.3/DWD‘
Warning messages:
1: 运行命令‘"C:/PROGRA~1/R/R-33~1.3/bin/x64/R" CMD INSTALL -l "C:\Users\Jeannie\Documents\R\win-library\3.3" "C:/Users/Jeannie/AppData/Local/Temp/RtmpmCxtPX/downloaded_packages/DWD_0.11.tar.gz"‘的状态是1 
2: In install.packages("https://cran.r-project.org/src/contrib/Archive/DWD/DWD_0.11.tar.gz",  :
  安装程序包‘C:/Users/Jeannie/AppData/Local/Temp/RtmpmCxtPX/downloaded_packages/DWD_0.11.tar.gz’时退出狀態的值不是0
 
 
解决方案:安装Rtools

、下载Rtools
Rtools的下载点是:
Please choose a CRAN mirrornear you, and follow the "Download R for Windows" link to
< CRAN mirror>/bin/windows/Rtools
找到CRAN镜像的网址:
China
http://ftp.ctex.org/mirrors/CRAN/ CTEX.ORG 
http://cran.csdb.cn/ Computer Network Information Center, CAS, Beijing 
http://mirror.bjtu.edu.cn/cran Beijing Jiaotong University, Beijing 
http://cran.dataguru.cn Dataguru (a, Guangzhou 
http://mirrors.ustc.edu.cn/CRAN/ University of Science and Technology of China 
http://mirrors.xmu.edu.cn/CRAN/ Xiamen University 

在网址后面添加/bin/windows/Rtools 即可
比如: http://cran.csdb.cn/bin/windows/Rtools/
我们下载最新版:Rtools215.exe

2、安装Rtools
安装的过程很傻瓜,不过有一点要注意:这个选项必须要选中,否则不会自动添加环境变量的

安装完成之后,打开一个cmd窗口,输入gcc --help,无误则说明环境变量设置正确。有的时候需要重启计算机,环境变量才生效
注意:我安装的Rtools是没有perl和TeX的

3、编写包

假设我们有自定义函数f1和f2以及数据矩阵d1,将其做成package,名字为test1,使用package.skeleton会在工作路径下自动生成package的框架。如下所示: 
setwd("D:/RData/workdir") 
f1 <- function(aa){return (aa)} 
f2 <- function(aa){return(aa+2)} 
d1 <- matrix(1:6,2,3) 
package.skeleton(name="test1", list=c("f1","f2","d1")) 

我们会在D:\RData\workdir内发现新生成了文件夹test1,里面包含data、man和R三个子文件夹以及DESCRIPTION和Read-and-delete-me这两个文件。其中Read-and-delete-me可以通过文本工具打开阅读后删除,DESCRIPTION可以参照标准的规范进行修改后保存(不做修改也不影响正常运行)。data文件夹保存数据(本例中对应d1),R文件夹保存函数(本例中对应f1和f2),man文件夹存放.Rd文件,用来生成帮助文件。我们只需要修改每个.Rd文件就行,用文本工具打开并定位到“title”开头这一行,写入该函数或者数据的名称即可(比如d1),保存关闭。其实按照标准的做法,下面的description和examples之类的都要补全,但是只有title是必须补全的,否则编译会出错。 

修改title这块:
原始数据是:
\title{
What the package does (short line)
~~ package title ~~
}
我修改为:
\title{
my test r package
}

4、编译包

打开CMD,定位到D:\RData\workdir,进行编译,如下所示:
D:
cd D:\RData\workdir
Rcmd build test1
注意:如果没有把R语言的路径添加到环境变量中,运行Rcmd是会报错的,这时有两个办法:
A。把Rcmd.exe所在路径添加到系统路径中
B。运行时添加Rcmd.exe的全路径,比如:
"C:\Program Files\R\R-2.15.0\bin\i386\Rcmd.exe" build test1

运行之后,查看D:\RData\workdir 目录下多了一个文件:
test1_1.0.tar.gz
(注意,按照之前帖子里的说法是运行Rcmd build --binary test1 之后会生成zip文件,但是我添加了--binary参数之后报错,最终生成的也是tar.gz格式的,不知道是为什么)
tar.gz格式的无法RGui环境中直接添

以上是关于R语言安装包时遇到arch - i386错误时解决方案的主要内容,如果未能解决你的问题,请参考以下文章

arch-linux安装小记(一)

ubuntu安装nginx遇到的问题及解决方案

arch Linux

R语言画图-条形图,堆叠条形图(ggplot2)

linux编译u-boot时显示[arch/arm/dts/zynq-zc702.dtb]错误?

在 ubuntu 15.10 中为 R 语言安装“ade4”包时出错 [关闭]