R:中的错误(只有源代码形式的包,可能需要编译C / C ++ / Fortran)

时间:2015-07-06 15:39:21

标签: r install yaml stringi

我正在尝试在R-Studio中安装'yaml'和'stringi'软件包,它不断给我这些错误:

> install.packages("stringi")
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘stringi’
These will not be installed

> install.packages('yaml')
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘yaml’
These will not be installed

如何正确安装这些?

7 个答案:

答案 0 :(得分:25)

该错误是由于R无法在CRAN上找到软件包的二进制版本,而只是找到软件包的版本而您的Windows安装无法编译它。通常这不会发生,但在这种情况下是由CRAN的某些镜像的(临时)中断引起的。如果输入:

> getOption('repos')
                                CRAN                            CRANextra 
           "http://cran.rstudio.com" "http://www.stats.ox.ac.uk/pub/RWin" 
attr(,"RStudio")
[1] TRUE

默认情况下,您会看到R使用"http://cran.rstudio.com"来查找要下载的包。如果您看到the cran mirrors web page,您可以在顶部看到"http://cran.rstudio.com"实际上将您重定向到全球不同的服务器(我假设根据地理位置)。

当我遇到上述问题时,我通过手动将回购更改为提供的链接中的一个网址解决了这个问题。如果您收到上述错误,我建议您使用其他国家/地区(甚至是大陆)。

如果上面的链接发生变化,我会在下面提供一些网址:

  1. 巴西http://nbcgib.uesc.br/mirrors/cran/
  2. 意大利http://cran.mirror.garr.it/mirrors/CRAN/
  3. 日本http://cran.ism.ac.jp/
  4. 南非http://r.adu.org.za/
  5. 美国https://cran.cnr.Berkeley.edu/
  6. 您需要按如下方式运行函数install.packages

    install.packages('<package_name>', repo='http://nbcgib.uesc.br/mirrors/cran/')
    #or any other url from the list or link
    

    然后其中一个应该从另一个镜像安装二进制文件。

答案 1 :(得分:13)

您需要安装RTools来构建这样的包(即源包而不是二进制包)。安装Rtools后,再次尝试install.packages("ggplot2"),R会提示您:

Do you want to attempt to install these from source?
y/n:

(见下图)

您需要回答y,它会尝试编译包,以便安装。

enter image description here

答案 2 :(得分:7)

今天遇到这个问题,现在首先下载Windows二进制文件,然后安装例如,解决它。

install.packages("https://cran.r-project.org/bin/windows/contrib/3.3/stringi_1.1.1.zip", repos =NULL)

转到https://cran.r-project.org/然后转到R Binaries / Windows / contrib并将url作为参数复制到install.packages()

答案 3 :(得分:2)

从zip文件安装包 - 可从r-project网站下载。

基本R

  1. 转到包
  2. 从本地文件安装包。
  3. 在RStudio中

    1. 转到包
    2. 安装包
    3. 从包存档文件安装。

答案 4 :(得分:1)

一切都对我有用,直到我发现计算机上安装了旧版本的R。卸载所有内容并安装最新的R版本是可行的!

答案 5 :(得分:0)

在使用最新版本的R 时遇到了这个问题,因此没有可用的二进制文件。一个简单的解决方案是更新我的R版本。

答案 6 :(得分:0)

我不得不download the latest version of Rtools

enter image description here

进入下载文件夹并双击它进行安装。

关闭并重新打开任何 R 会话。

现在包应该像往常一样安装。

但是,如果您仍然遇到问题,请尝试从源代码安装软件包(使用 type="source"

像这样:

install.packages("dplyr", type="source")