R语言实操记录——R包无法安装,报错:Warning in system(cmd) : ‘make‘ not found

news2024/11/27 1:24:07

R语言

R语言实操记录——R包无法安装,报错:Warning in system(cmd) : ‘make‘ not found


文章目录

  • R语言
  • 一、起因
  • 二、具体步骤
    • 2.1、确认问题源
    • 2.2、安装RTools
    • 2.3、与R(/Rstudio)绑定
    • 2.4、验证可行性
  • 三、疑惑


一、起因

R语言在包的安装上是真的方便,一句install.packages()就可以实现绝大多数包的安装。可惜,越简单的东西,报起错来也越是要命。

  • 我在加载Seurat包时,报错提醒我缺少依赖包rgeos。
    • 行呗,那就install.packages()呗。
  • 开始报错 package ‘rgeos’ is not available for this version of R”。
    一般原因有两个:
    1. 该版本的R数据库中不含该包(淘汰或改名了)
    2. 该软件包可用,但不适用于当前版本的R或操作系统类型(Unix/Windows)
    • 解决办法
    1. 用Bio conductor或者Github的安装方法安装,具体操作
    2. install.packages(pkgs, repos = “换个镜像源”)
    3. 直接去官网下载压缩包,进行本地安装
  • 再加载一遍Seurat包,开始报错:Error: package or namespace load failed for ‘Seurat’ in library.dynam(lib, package, package.lib): 没有这个DLL ‘rgeos’:是不是没有为此架构安装?好家伙,还是没安上。我怀疑了一下,是不是包的版本和软件版本有冲突,或者rgeos和Seurat两个包的版本起冲突了,更改了几次,还是报错。于是我就去看了下,安装包时输出的log。
  • 报错Warning in system(cmd) : ‘make‘ not found
  • 具体错误:
** installing *source* package 'rgeos' ...
** 成功将'rgeos'程序包解包并MD5和检查
** using staged installation
** libs

Warning in system(cmd) : 'make' not found
ERROR: compilation failed for package 'rgeos'
* removing '.../R/4.2/library/rgeos'
Warning in install.packages :
installation of package ‘rgeos’ had non-zero exit status
  • 这个make命令是RTools中的,我更新了RTools,配置了make命令的环境变量就可以本地安装rgeos包了。
    • Rtools:一个用于Windows操作系统的软件包,它为R编程语言提供了一套工具和依赖项,以便在Windows上进行编译和构建R软件包。 Rtools的安装和配置使得开发人员能够在Windows环境中更轻松地编译和构建R包,同时也方便了使用C/C++或Fortran等其他编程语言编写的扩展包的安装和使用。
    • 下面是具体步骤

二、具体步骤

2.1、确认问题源

> Sys.which("make")
make 
"" 

确认找不到make命令,make命令在RTools中

2.2、安装RTools

安装与当前R版本匹配的RTools版本,有两种方法(如果先前安装过RTools,先卸载RTools)

  • 方法一:在线安装
install.packages("installr")
install.packages("stringr")###依赖包
library(stringr)
library(installr)
## 需要用installr安装RTools
install.Rtools()
  • 方法二:本地安装
    去官网找与当前R版本匹配的安装包,除开需要将RTools安装在R(Rstudio)一个目录中外,其他一直点击下一步就行了。
    在这里插入图片描述
    在这里插入图片描述

2.3、与R(/Rstudio)绑定

假如忘记安装在同一目录下,或者R(/Rstudio)还是找不到make命令在哪的话,我们就需要将二者进行绑定,告诉它RTools的路径在哪。有两种方法。

  • 方法一:创建一个Renviron文件,指明Rtools主页的路径
    在Rstudio中运行:(这里以RTools 4.3为例)
writeLines('PATH="${RTOOLS43_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron")

完成之后,重启一下Rstudio

  • 方法二:配置环境变量
    直接配置环境变量,开机就读取这个目录。
  • 这里以Windows10为例,在Windows设置中点击系统
    在这里插入图片描述
  • 选择关于高级系统设置
    在这里插入图片描述
  • 选择环境变量
    在这里插入图片描述
  • 编辑Path,在Path中添加RTools的路径
    在这里插入图片描述
    在这里插入图片描述
  • 如果先前有下载过RTools,需要检查并清除掉个人变量系统变量中旧版本的RTools的目录路径。

2.4、验证可行性

> Sys.which("make")
                              make 
"c:\\rtools43\\usr\\bin\\make.exe" 

install.packages("C:/Users/16748/Downloads/rgeos_0.6-4.tar.gz", repos = NULL, type = "source")

可以成功本地安装了。

三、疑惑

虽然解决了问题,可是我还是存在疑惑。在知道是RTools那边出问题后,我先是在应用程序中,找到了RTools,确定我安装了与Rstudio当前版本匹配的RTools版本,并且前不久才刚刚用过本地安装,理论上不应该会出错。想不通就干脆卸了重装好了,在卸载RTools时,发现应用程序中有它,但是卸载时提示找不到该程序,进入文件目录也确实找不到该包,重启电脑,重新加载还是一样的问题。emmm,好吧,就当它不存在吧,我换个版本吧。为了和新版本的RTools匹配,我又升级了Rstudio,R到最新版。RTools需要和R包的库放在一个目录下,方便加载,但是在安装新版时,提示当前目录下已安装过RTools,请换个目录。emmm,所以旧版的RTools真的存在啊,我翻来倒去都没找到。无奈,换个目录吧,在环境变量里,把这个目录加进去,也能成功加载。虽然最后还是解决了问题,但这种看不见的还解决不了的东西,真叫人心累。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

概率论与数理统计-第4章 随机变量的数字特征

第4章 随机变量的数字特征 4.1数学期望 一、离散型随机变量的数学期望 定义1设离散型随机变量X的概率分布为 P{Xxi}pi,i1,2,…,如果级数绝对收敛,则定义X的数学期望(又称均值)为 二、连续型随机变量的数学期望 定义2设X是连续型随机变量…

【前端开发】Remix与Next.js

很容易,我们被问到的最大问题是: Remix与Next.js有何不同? 看来我们必须回答这个问题!我们想直接而不带戏剧性地解决这个问题。如果你是Remix的粉丝,并且想开始在推特上对这篇文章做出沾沾自喜的反应,我们恳…

6款AI工具网站,赶紧收藏,以备不时之需

1、海鲸AI-支持AI对话、AI文档解析、AI绘画 https://www.atalk-ai.com 海鲸AI是一个AI应用网站,同时支持PC和移动端,它在一个页面上提供了多种模型(GPT3,GPT4,文心一言,通义千问,智谱AI&#…

priority_queue优先级队列基本使用

目录 介绍 头文件 基本使用 constructor empty size top push pop swap 使用 大根堆 小根堆 结果 介绍 类似于堆 头文件 #include <queue> 基本使用 constructor empty 判空 size 元素个数 top 堆顶元素 push 入元素 pop 弹出堆顶元素 swap …

Java-认识异常

本章重点&#xff1a; 1. 异常概念与体系结构 2. 异常的处理方式 3. 异常的处理流程 4. 自定义异常类 1. 异常的概念与体系结构 1.1 异常的概念 在Java中&#xff0c;将程序执行过程中发生的不正常行为称为异常。比如之前写代码时经常遇到的&#xff1a; 1. 算术异常 2. 数组…

sql中group by和having的使用

group by&#xff1a;按照某个字段或者某些字段进行分组。 having&#xff1a;对分组之后的数据进行再次过滤&#xff0c;having必须和group by一起用&#xff0c;且在group by后面。 比如person表如下&#xff08;以下查询均基于此表&#xff09;&#xff1a; 1.group by 用法…

坚鹏:交通银行新疆分行银行网点综合化转型之营销与风控培训

交通银行始建于1908年&#xff0c;是中国历史最悠久的银行之一。1987年4月1日&#xff0c;交通银行重新组建后正式对外营业&#xff0c;成为中国第一家全国性的国有股份制商业银行&#xff0c;总部设在上海。2005年6月交通银行在香港联交所挂牌上市&#xff0c;2007年5月在上交…

2019年8月15日 Go生态洞察:Go贡献者峰会2019回顾

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

R语言阶段复习一

创建一个长度为7的字符向量&#xff0c;元素为"A", "B", "C", "D", "E", "F", "G"&#xff0c;并命名为vec1。 创建一个因子&#xff0c;包含6个水果&#xff1a;"apple", "banana"…

动态规划算法详解进阶篇

目录 动态规划算法优化 一维 —> 常量 leetcode70题.爬楼梯 二维 —>一维 leetcode62题.不同路径 动态规划算法优化 优化的原则如下&#xff1a; 1、把一维数组优化为常量 2、把二维数组优化为一维 优化的核心&#xff1a;画图辅助 一维 —> 常量 leetcode…

虚拟教育展馆有什么优势,虚拟教育展馆可以有哪些应用

引言&#xff1a; 随着科技的飞速发展&#xff0c;教育行业也在不断变革&#xff0c;传统的教育方式逐渐受到虚拟教育的冲击&#xff0c;在这个数字时代&#xff0c;虚拟教育展馆崭露头角&#xff0c;成为教育的新形式。 一&#xff0e;教育展馆有什么优势 1.身临其境&#x…

【论文阅读】TACAN:控制器局域网中通过隐蔽通道的发送器认证

文章目录 摘要一、引言二、相关工作三、系统和对手模型3.1 系统模型对手模型 四、TACAN4.1 TACAN 架构4.2 发送方认证协议4.3 基于IAT的隐蔽通道4.4 基于偏移的隐蔽通道&#xff08;本节公式格式暂未整理&#xff09;4.5 基于LSB的隐蔽通道 摘要 如今&#xff0c;汽车系统与现…

【上海大学数字逻辑实验报告】一、基本门电路

一、 实验目的 熟悉TTL中、小规模集成电路的外形、管脚和使用方法&#xff1b;了解和掌握基本逻辑门电路的输入与输出之间的逻辑关系及使用规则。 二、 实验原理 实现基本逻辑运算和常用逻辑运算的单元电路称为逻辑门电路。门电路通常用高电平VH表示逻辑值“1”&#xff0c;…

vim工具以及如何给用户加上sudo的权限

Linux开发工具之vim以及如何给用户配置sudo的权限文件的操作 1.vim概念的介绍 2.vim的多模式的介绍 3.vim的命令模式与低行模式的相关指令操作 4.vim如何配置 5.如何给普通用户配置sudo的权限 本文开始~~~~ 1. vim概念的介绍 vim是一款多模式的文本编辑器&#xff0c;简单…

激光线提取

在做单线激光三维重建&#xff0c;和多线激光三维重建的时候都会设计到激光线提取算法的实现&#xff0c;如何保持高速和高精度是关键 &#xff0c;最近优化了steger中心线提取算法&#xff0c;通过并行化实现在cpu版本可以做到2m,GPU版本可以做到0.6ms左右&#xff0c;完全可…

Go 中切片(Slice)的长度与容量

切片长度与容量在 Go 中很常见。切片长度是切片中可用元素的数量&#xff0c;而切片容量是从切片中第一个元素开始计算的底层数组中的元素数量。 Go 中的开发者经常混淆切片长度和容量&#xff0c;或者对它们不够了解。理解这两个概念对于高效处理切片的核心操作&#xff0c;比…

S32K3之看门狗(autosar框架中的watchdog)

参考链接&#xff1a;AUTOSAR软件架构 — MCAL Wdg模块解析&#xff08;nxp为例&#xff09; 1、注意点 在 autosar 规范中&#xff0c;系统必须能够实现自动喂狗&#xff0c;这就需要使用定时器来实现周期性的定时喂狗。 在实现自动喂狗功能时&#xff0c;需要注意定时器的频…

Linux多路转接select,poll

文章目录 目录 文章目录 一、五种IO模型 1.阻塞IO: 2.非阻塞IO 3.信号驱动IO 4.IO多路转接 5.异步IO 二、高级IO的一些重要概念 1.同步通信和异步通信 2.阻塞和非阻塞 三、其他高级IO 四、非阻塞IO 1.fctl函数 2.实现setNoBlock函数&#xff0c;将文件描述符设置…

OSG编程指南<三>:利用Cmake+VS2019+OSG3.6.5编译osgVerse

目前osgearth的ralease版本和debugx64都已经编译过了并且自测可用&#xff0c;放到资源里osgearth下载&#xff0c;供需要的朋友下载参考。环境配置&#xff1a;win10VS2017OSG3.6.4OSGEarth2.10.2&#xff0c; 1、配置OSG环境 编译好osg&#xff0c;然后在系统变量中配置如下…

微服务--02--Nacos注册中心

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 服务注册和发现手动发送Http请求的方式存在问题注册中心原理 Nacos注册中心配置服务注册服务发现小结&#xff1a; 服务注册和发现 手动发送Http请求的方式存在问题…