安装plyr/rcpp时出现错误

9
我有两台电脑,其中一台无法安装R的plyr包。 这是我遇到的错误:
* installing *source* package ‘plyr’ ...
** package ‘plyr’ successfully unpacked and MD5 sums checked
** libs
g++ -I/usr/share/R/include -DNDEBUG   -I"/usr/lib/R/site-library/Rcpp/include"   -fpic  -O2 -pipe -g  -c RcppExports.cpp -o RcppExports.o
RcppExports.cpp: En la función ‘SEXPREC* plyr_loop_apply(SEXP, SEXP)’:
RcppExports.cpp:15:9: error: ‘input_parameter’ no es un miembro de ‘Rcpp::traits’
RcppExports.cpp:15:40: error: expected primary-expression before ‘int’
RcppExports.cpp:15:40: error: expected ‘;’ before ‘int’
RcppExports.cpp:16:9: error: ‘input_parameter’ no es un miembro de ‘Rcpp::traits’
RcppExports.cpp:16:49: error: expected primary-expression before ‘>’ token
RcppExports.cpp:16:50: error: ‘::type’ no se ha declarado
RcppExports.cpp:16:57: error: expected ‘;’ before ‘f’
RcppExports.cpp:17:36: error: ‘n’ no se declaró en este ámbito
RcppExports.cpp:17:39: error: ‘f’ no se declaró en este ámbito
RcppExports.cpp: En la función ‘SEXPREC* plyr_split_indices(SEXP, SEXP)’:
RcppExports.cpp:31:9: error: ‘input_parameter’ no es un miembro de ‘Rcpp::traits’
RcppExports.cpp:31:54: error: expected primary-expression before ‘>’ token
RcppExports.cpp:31:55: error: ‘::type’ no se ha declarado
RcppExports.cpp:31:62: error: expected ‘;’ before ‘group’
RcppExports.cpp:32:9: error: ‘input_parameter’ no es un miembro de ‘Rcpp::traits’
RcppExports.cpp:32:40: error: expected primary-expression before ‘int’
RcppExports.cpp:32:40: error: expected ‘;’ before ‘int’
RcppExports.cpp:33:65: error: ‘group’ no se declaró en este ámbito
RcppExports.cpp:33:72: error: ‘n’ no se declaró en este ámbito
make: *** [RcppExports.o] Error 1
ERROR: compilation failed for package ‘plyr’
* removing ‘/home/rgalhama/R/x86_64-pc-linux-gnu-library/2.15/plyr’
Warning in install.packages :
  installation of package ‘plyr’ had non-zero exit status

看起来这个包无法编译,但我不知道为什么。 在安装开始之前,我收到了以下警告信息:
“在安装包时发出警告:依赖项‘Rcpp’不可用”
我已经从系统中安装了rcpp(作为sudo apt-get install r-cran-rcpp),因为我找不到一种从R中安装它的方法:
“install.packages("Rcpp", repos='http://cran.us.r-project.org') 正在将包安装到 ‘/home/rgalhama/R/x86_64-pc-linux-gnu-library/2.15’(因为未指定‘lib’) 在安装包时发出警告:包‘Rcpp’不可用(对于R版本2.15.2)”
但我仍然不知道这些错误是否相关。
有任何想法吗?
谢谢!
4个回答

5

明白了!

在我的情况下,解决方案是:

首先,更新 R:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo sh -c "echo 'deb http://streaming.stat.iastate.edu/CRAN/bin/linux/ubuntu quantal/' >>  /etc/apt/sources.list" 
sudo apt-get update 
sudo apt-get install r-base r-base-dev

然后从R中安装codetools包:

install.packages("codetools")

安装plyr顺利完成。

你的第二个步骤没有意义。codetools包已经是r-base包的一部分了。但很高兴听到你现在已经解决了问题。 - Dirk Eddelbuettel
它抱怨找不到它,但在我安装了它之后就可以工作了。也许它不再是基础包的一部分了,我不知道。 - rgalhama
它应该被作为一个依赖项拉入。 - Dirk Eddelbuettel

2

我在Ubuntu上尝试在RStudio中安装plyr时遇到了类似的问题,后来我找到了以下解决方案:

sudo apt-get install r-cran-plyr

我把这个放在这里,帮助防止人们像我一样走进一个很深的兔子洞之前找到一个可行的解决方案。


2

我曾经遇到过非常类似的问题。安装Debian/Ubuntu中的build-essential软件包解决了我的问题:

sudo apt-get install build-essential

事实证明,如果没有安装编译器,R语言很难进行编译。


2

看起来你的版本比较旧:

R版本为2.15.2

你可以尝试更新R到最新版本。


哦,我没注意到!我会尝试的。谢谢! - rgalhama
仅供参考,我添加了更新R的代码: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 sudo sh -c "echo 'deb http://streaming.stat.iastate.edu/CRAN/bin/linux/ubuntu quantal/' >> /etc/apt/sources.list" sudo apt-get update sudo apt-get install r-base r-base-dev - rgalhama
似乎仅更新 R 并不够。我设法安装了 Rcpp,但在安装 plyr 时仍然收到完全相同的错误信息:( - rgalhama
很好,你找到了README文件以更新你的R。现在请确保你只安装了一个版本的Rcpp - 确保你从(旧的)Ubuntu版本中删除了 r-cran-rcpp - Dirk Eddelbuettel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接