解决R语言中install_github中无法安装遇到的问题

首先,让我们来进入常规步骤

我安装的是recharts包,正常的写法呢,就是以下这个样子:

install.packages("devtools")
#devtools::install_github("madlogos/recharts")

第一个问题:

然而对于今天的我来说,那就太天真了,首先踏入的第一个坑:

无法打开URL'http://yihui.name/xran/src/contrib/PACKAGES' Warning in install.packages : 从zip文件中抽取1时出了错

类似于无法访问的错误,第一步的解决办法,就是改变包的镜像。

在Tools->Global Options->packages->change->china Beijing.

如下图所示:

这可能是R新版本的默认设置为外国版本,之前的版本上没有遇到过类似镜像的问题,解决完这里,如果是稍微简单点的问题就可以被解决了,然而我的路才刚刚开始。

第二个问题:

要在https://cran.rstudio.com/bin/windows/Rtools/网站中下载rtools错误大概就是这么写的,具体我已经无法还原了,相信这个报错大家都能看懂,下载未被冻结或锁定的rtools,注意安装时要选择自动添加路径,不然还得手动添加,容易出错。这一步下来,正常的包都可以安装了。

第三个问题

错误为:

failed to receive handshake ssl/tls connection failed github

第一种方法:

始终无法访问github,查过许多资料,有一部分说是IE出了问题,在选项中一次勾选SSL之类的,然而我一开始没有找到这个地方,不过好像这个方法蛮简单,大家如果遇到类似问题可以去百度尝试一下,

第二种方法:

很可能是因为你的网络被设置而代理,或者是你有下载翻墙软件串改了你的internet设置,具体操作如下:打开IE浏览器,选择工具->internet选项->连接->局域网设置->点击自动设置(若勾选,则点为不勾选。若不勾选,则点为勾选),下面的LAN设置不要勾选

第三种方法:

打开git bash,输入下列代码

$ git config --global http.sslBackend "openssl"
$ git config --global http.sslCAInfo c://program files//R//R-3.6.3//library//openssl//cacert.pem(此为R中cacert.pem的文件路径)

运行完之后退出,重新打开R,再执行安装命令

install.packages("devtools")
devtools::install_github("madlogos/recharts")

就OK了。

补充:R安装xml2 (安装devtools)

安装devtools

今天看到了一个R上的一个包,似乎是要用到devtools。发现我linux电脑上的R并没有装devtools这个包。想着直接安装一下,没想到却意外频发。

R:R-4.0.0

devtools需要很多依赖包,用R自带的

install.packages("devtools")

可以很好地解决这些问题,但是发现安装失败。仔细检查后发现是安装xml2的时候出现了意外。

xml2这个包没有装上,导致了最终devtools没有安装成功。

安装xml2时报错:

Error : unable to load shared object '/home/Litedg/Programs/R-4.0.0/lib64/R/library/00LOCK-xml2/00new/xml2/libs/xml2.so': libiconv.so.2: cannot open shared object file: No such file or directory

开始以为是没有装libxml2、libxml2-devel。用yum装过了一下,发现只是版本有些旧,但还是有的。

然后发现在报错的最前面:

--- Please select a CRAN mirror for use in this session ---

trying URL 'https://cloud.r-project.org/src/contrib/xml2_1.3.2.tar.gz'

Content type 'application/x-gzip' length 271876 bytes (265 KB)

==================================================

downloaded 265 KB

* installing *source* package 'xml2' ...

** package 'xml2' successfully unpacked and MD5 sums checked

** using staged installation

Found pkg-config cflags and libs!

Using PKG_CFLAGS=-I/home/Litedg/Programs/anaconda3/include/libxml2 -I/home/Litedg/Programs/anaconda3/include

Using PKG_LIBS=-L/home/Litedg/Programs/anaconda3/lib -lxml2 -L/home/Litedg/Programs/anaconda3/lib -lz -

L/home/Litedg/Programs/anaconda3/lib -llzma -lpthread -L/home/Litedg/Programs/anaconda3/lib -liconv -

L/home/Litedg/Programs/anaconda3/lib -licui18n -licuuc -licudata -lm -ldl

** libs

所以应该是由于调用了anaconda3下面的libxml2导致的原因。想在环境变量中将anaconda3给注释掉,但是会调到pymol下面,后来发现直接修改xml2安装包的configure就好了。

找到xml2的安装包。在报错的最后面会给出:

The downloaded source packages are in

'/tmp/RtmpUV7uZp/downloaded_packages'

Updating HTML index of packages in '.Library'

Making 'packages.html' ... done

Warning message:

In install.packages("xml2") :

installation of package 'xml2' had non-zero exit status

找到这个目录,解压:

cd /tmp/RtmpUV7uZp/downloaded_packages
tar -zxvf xml2_1.3.2.tar.gz

修改其中configure文件:

  xml2-config --version >/dev/null 2>&1
  if [ $? -eq 0 ]; then
    PKGCONFIG_CFLAGS=`xml2-config --cflags`
    PKGCONFIG_LIBS=`xml2-config --libs`

    # MacOS versions El Capitan and later ship a xml2-config which appends `xcrun
    # --show-sdk-path` to the xml2-config. So we remove it if it is present.
    # (https://stat.ethz.ch/pipermail/r-sig-mac/2016-September/012046.html)
    if [ "$OS_TYPE" = "Darwin" ] && [ "$OS_VERSION" -gt "13" ] && [ "$OS_VERSION" -lt "17" ]; then
      PKGCONFIG_CFLAGS=`echo $PKGCONFIG_CFLAGS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"`
      PKGCONFIG_LIBS=`echo $PKGCONFIG_LIBS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"`
    fi

    # Fix a missing libxml2 directory on the requested include directory
    # https://github.com/r-lib/xml2/issues/296
    if [ "${OS_TYPE}" = "Darwin" ] && echo "${PKGCONFIG_CFLAGS}" | grep -sq "/usr/include$"; then
      PKGCONFIG_CFLAGS="$PKGCONFIG_CFLAGS/libxml2"
    fi

  else
    pkg-config --version >/dev/null 2>&1
    if [ $? -eq 0 ]; then
      PKGCONFIG_CFLAGS=`pkg-config --cflags $PKG_CONFIG_NAME`
      PKGCONFIG_LIBS=`pkg-config --libs $PKG_CONFIG_NAME`
    fi
  fi

改成:

  if [ $(command -v pkg-config) ]; then
   PKGCONFIG_CFLAGS=$(pkg-config --cflags $PKG_CONFIG_NAME)
   PKGCONFIG_LIBS=$(pkg-config --libs $PKG_CONFIG_NAME)
 fi

即可。保存退出。

使用R CMD进行安装(在xml2目录下)

R CMD INSTALL ./

即可顺利安装xml2包。

其余的包使用

install.packages("devtools")

继续安装即可~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言-生成频数表和列联表crosstable函数介绍

    列联表crosstable 列联表不仅可以用来做简单的描述性统计,还可以在机器学习中用来比较识别正确率,FPR,TPR等等数据,以便我们比较不同的ML模型 or 调参. 2x2列联表一般长下面这样: Total Observations in Table: 143 | test_cancer$diagnosis lda.class | 0 | 1 | Row Total | -------------|-----------|-----------|-----------| 0 | 82 | 1

  • R语言-使用ifelse进行数据分组

    数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性: 在R中,我们常用ifelse函数来进行数据的分组,跟excel中的if函数是同一种用法. ifelse(condition,TRUE,FALSE) > data <- read.table('1.csv', sep='|', header=TRUE); > > level <- ifelse( + data$cost<=20, "(0,2

  • R语言实现用cbind合并两列数据

    我有两个数据文件,分别只有一列,这两列数据行数一行,我想把这两列合并到一个数据文件中,方便使用. 我的两个数据文件分别是1.txt,2.txt,保存后的文件名是3.txt. // 代码如下 gow1<-read.table("1.txt",header = FALSE) gow2<-read.table("2.txt",header = FALSE) View(gow1) View(gow2) gow<-cbind(gow1,gow2) View(

  • R语言中na.fail和na.omit的用法

    实际工作中,数据集很少是完整的,许多情况下样本中都会包括若干缺失值NA,这在进行数据分析和挖掘时比较麻烦. R语言通过na.fail和na.omit可以很好地处理样本中的缺失值 1.na.fail(<向量a>): 如果向量a内包括至少1个NA,则返回错误:如果不包括任何NA,则返回原有向量a 2.na.omit(<向量a>): 返回删除NA后的向量a 3.attr( na.omit(<向量a>) ,"na.action"): 返回向量a中元素为NA的

  • R语言中if(){}else{}语句和ifelse()函数的区别详解

    首先看看定义: # if statement if(cond) expr if(cond) cons.expr else alt.expr # ifelse function ifelse(test, yes, no) 这两个函数(R语言中都是函数)相同的地方都是根据条件返回对应的值. 区别在于: if语句的条件是个TRUE/FALSE值,如果是个长度>1的逻辑向量,只判断第一个TRUE/FALSE值:而ifelse是长度任意的逻辑向量,返回根据逻辑向量对应对的yes/no值组合的新向量 ife

  • R语言中ifelse、which、%in%的用法详解

    ifelse.which.%in%是R语言里极其重要的函数,以后会经常在别的程序中看到. ifelse ifelse是if条件判断语句的简写,它的用法如下: ifelse(test,yes,no) 参数 描述 test 一个可以判断逻辑表达式 yes 判断为 true 后返回的对象 no 判断为 flase 后返回的对象 举例: x = 5 ifelse(x,1,0) 如果x不等于0,就返回1,等于0就返回0. which which 返回条件为真的句柄,给正确的逻辑对象返回一个它的索引. wh

  • R语言ARMA模型的参数选择说明

    AR(p)模型与MA(q)实际上是ARMA(p,q)模型的特例.它们都统称为ARMA模型,而ARMA(p,q)模型的统计性质也是AR(p)与MA(q)模型的统计性质的有机组合. 平稳系列建模 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对序列建模. 1.求出该观察值序列的样本自相关系数(ACF)与偏相关系数(PACF的值. 2.根据根样本自相关系数和偏自相关系数的性质,选择阶数适当的ARMA(p,q)模型进行拟合. 3.估计模型中未知参数的值 4.检验模型的

  • R语言 实现选取某一行的最大值

    可以先自定义函数 也可以用的时候再定义. > mat <- matrix(c(1:3,7:9,4:6), byrow = T, nc = 3) > mat [,1] [,2] [,3] [1,] 1 2 3 [2,] 7 8 9 [3,] 4 5 6 > apply(mat, 2, function(x){order(x, decreasing=T)[1]}) # 查找每一列 [1] 2 2 2 > apply(mat, 1, function(x){order(x, dec

  • 解决R语言中install_github中无法安装遇到的问题

    首先,让我们来进入常规步骤 我安装的是recharts包,正常的写法呢,就是以下这个样子: install.packages("devtools") #devtools::install_github("madlogos/recharts") 第一个问题: 然而对于今天的我来说,那就太天真了,首先踏入的第一个坑: 无法打开URL'http://yihui.name/xran/src/contrib/PACKAGES' Warning in install.packa

  • python中的try except与R语言中的tryCatch异常解决

    目录 1. 起因 2. Python中的try/except 1)情形一 2)情形二 3)情形三 3. R中的tryCatch 1)情形一 2)情形二 3)情形三 补充 1. 起因 当我们需要写一个非常非常长的循环时,通常在某个循环如果出现error,那么整个代码后面的循环就不能进行. 这时候试想,如果你在服务器上挂一个要跑很久的循环(并行),亦或是需要在自己电脑上挂一晚上跑东西,可能刚点完运行,美滋滋地上床后,程序突然出现问题.这时第二天满怀期待地点亮屏幕,发现是一个大大的红红的ERROR时,

  • 详解R语言中的PCA分析与可视化

    1. 常用术语 (1)标准化(Scale) 如果不对数据进行scale处理,本身数值大的基因对主成分的贡献会大.如果关注的是变量的相对大小对样品分类的贡献,则应SCALE,以防数值高的变量导入的大方差引入的偏见.但是定标(scale)可能会有一些负面效果,因为定标后变量之间的权重就是变得相同.如果我们的变量中有噪音的话,我们就在无形中把噪音和信息的权重变得相同,但PCA本身无法区分信号和噪音.在这样的情形下,我们就不必做定标. (2)特征值 (eigen value) 特征值与特征向量均为矩阵分

  • R语言中Fisher判别的使用方法

    最近编写了Fisher判别的相关代码时,需要与已有软件比照结果以确定自己代码的正确性,于是找到了安装方便且免费的R.这里把R中进行Fisher判别的方法记录下来. 1. 判别分析与Fisher判别 不严谨但是通俗的说法,判别分析(Discriminant Analysis)是一种多元(多个变量)统计分析方法,它根据样本的多个已知变量的值对样本进行分类的方法.一般来说,判别分析由两个阶段构成--学习(训练)和判别.在学习阶段,给定一批已经被分类好的样本,根据它们的分类情况和样本的多个变量的值来学习

  • R语言中corrplot标题居中及eps格式输出

    目录 相关性图 corrplot ggcorr eps格式输出图像 相关性图 R中相关性图有两种比较简单的画法,一个是使用corrplot包,另一个则是使用ggcorr,利用这两个包,即可绘制出非常美观的相关性图了.这里不对两个包进行细讲,仅仅只是针对在使用过程中遇到的问题进行解决. corrplot 在使用corrplot进行绘图时,如果我们想要添加一个标题,直接使用title =这个参数会生成如下的结果,我们以示例代码为例: M <- cor(mtcars) corrplot(M, titl

  • R语言中的vector(向量),array(数组)使用总结

    对于那些有一点编程经验的人来说,vector,matrix,array,list,data.frame就相当于编程语言中的容器,因为只是将R看做数据处理工具所以它们的底层是靠什么实现的,内存怎么处理的具体也不要深究. R语言很奇怪的是它是面向对象的语言,所以经常会调用系统的方法,而且更奇怪的是总是调用"谓语"的方法,用起来像是写句子一样,记起来真是让人费解.比如is.vector(),read.table(),as.vector().. 直接开始吧:(由于习惯,大部分用"=&

  • R语言中R-squared与Adjust R-squared参数的解释

    前言 最近做项目时,使用 R语言对一些数据做回归计算,分析数据时,想查看这堆数据的相关性,得知R-squared可以得到我想要的信息,但是在打印线性关系式时,看到了R-squared,Adjust R-squared 这两个参数,有点疑惑,上网也查看了一部分资料,最后,发现有两道题可以很明白解释这两个参数,如下: 题一 如果在线性回归模型中增加一个特征变量,下列可能发生的是(多选)? A. R-squared 增大,Adjust R-squared 增大 B. R-squared 增大,Adju

  • R语言及RStudio下载与安装方法

    现如今,R语言是统计领域广泛使用的工具,是属于GNU系统的一个自由.免费.源代码开放的软件,是用于统计计算和统计绘图的优秀工具.而RStudio是R的集成开发环境,用它进行R编程的学习和实践会更加轻松和方便.下面就教大家如何下载并安装R和RStudio,比较简单.R的维护工作由一个国际化的开发者团队负责.R软件的官方下载页面叫作The Comprehensive R Archive Network,即CRAN. 一.官网下载R安装包 下载地址为:https://cran.r-project.or

  • R语言中cbind、rbind和merge函数的使用与区别

    cbind: 根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a.c的行数必需相符 rbind: 根据行进行合并,就是行的叠加,m行的矩阵与n行的矩阵rbind()最后变成m+n行,合并前提:rbind(a, c)中矩阵a.c的列数必需相符 > a <- matrix(1:12, 3, 4) > print(a) [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

随机推荐