在Ubuntu 16.04上安装R的方法

devtools/2024/9/19 19:20:10/ 标签: ubuntu, r语言, linux

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

R 是一种流行的开源编程语言,专门用于统计计算和图形处理。它被广泛用于开发统计软件和进行数据分析。R 很容易扩展,社区以不断添加特定研究领域的用户生成包而闻名,这使得它适用于许多领域。

在本教程中,我们将安装 R,并展示如何从官方 Comprehensive R Archive Network (CRAN) 添加包。

先决条件

要跟着做,你需要一个 Ubuntu 16.04 服务器,具备以下条件:

  • 至少 1GB 的 RAM
  • 一个具有 sudo 权限的非 root 用户。要了解如何设置,请参考我们的初始服务器设置指南。

一旦满足这些先决条件,你就可以开始了。

步骤 1 — 安装 R

R 是一个快速发展的项目,最新的稳定版本并不总是可以从 Ubuntu 的仓库中获取,因此我们将首先添加由 CRAN 维护的外部仓库:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg: requesting key E084DAB9 from hkp server keyserver.ubuntu.com
gpg: key E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

一旦我们在每台服务器的数据库中有了可信任的密钥,我们就可以添加仓库。

sudo add-apt-repository 'deb [arch=amd64,i386] https://cran.rstudio.com/bin/linux/ubuntu xenial/'

我们需要在此之后运行 update 命令,以便从新仓库中包含软件包清单:

sudo apt-get update
. . .
Get:6 https://cran.rstudio.com/bin/linux/ubuntu xenial/ InRelease [3,590 B]
Get:7 https://cran.rstudio.com/bin/linux/ubuntu xenial/ Packages [31.5 kB]
. . .

如果上面的行出现在 update 命令的输出中,那么我们已经成功添加了仓库。我们可以确保不会意外安装旧版本。

现在我们准备安装 R:

sudo apt-get install r-base

在撰写本文时,CRAN 的最新稳定版本是 3.3.1,在启动 R 时会显示。由于我们计划为系统上的所有用户安装示例包,因此我们将以 root 用户身份启动 R,以便库将自动对所有用户可用:

sudo -i R
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
. . .
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
>

这证实我们已成功安装了 R 并进入了其交互式 shell。

步骤 2 — 从 CRAN 安装 R 包

R 的强大之处之一在于其丰富的附加包。为了演示目的,我们将安装 txtplot,一个可以输出 ASCII 图形(包括散点图、折线图、密度图、自相关函数图和条形图)的库:

install.packages('txtplot')

在安装过程中,你将被要求选择要安装的镜像:

--- 请选择此会话中要使用的 CRAN 镜像 ---
HTTPS CRAN 镜像1: 0-Cloud [https]                 2: Algeria [https]
3: Australia (Melbourne) [https]   4: Australia (Perth) [https]
5: Austria [https]                 6: Belgium (Ghent) [https]
7: Brazil (SP 1) [https]           8: Bulgaria [https]
9: Canada (MB) [https]            10: Chile [https]
11: China (Beijing 4) [https]      12: Colombia (Cali) [https]
13: Czech Republic [https]         14: Denmark [https]
15: France (Lyon 1) [https]        16: France (Lyon 2) [https]
17: France (Marseille) [https]     18: France (Paris 2) [https]
19: Germany (Falkenstein) [https]  20: Germany (Münster) [https]
21: Iceland [https]                22: Ireland [https]
23: Italy (Padua) [https]          24: Japan (Tokyo) [https]
25: Malaysia [https]               26: Mexico (Mexico City) [https]
27: New Zealand [https]            28: Norway [https]
29: Philippines [https]            30: Russia (Moscow) [https]
31: Serbia [https]                 32: Spain (A Coruña) [https]
33: Spain (Madrid) [https]         34: Switzerland [https]
35: Taiwan (Chungli) [https]       36: Turkey (Denizli) [https]
37: UK (Bristol) [https]           38: UK (Cambridge) [https]
39: UK (London 1) [https]          40: USA (CA 1) [https]
41: USA (IA) [https]               42: USA (KS) [https]
43: USA (MI 1) [https]             44: USA (TN) [https]
45: USA (TX) [https]               46: USA (WA) [https]
47: (HTTP mirrors)Selection: 1

我们输入 1 选择 0-Cloud,这将连接我们到由 RStudio 提供的内容交付网络(CDN),以获取地理位置最近的选项。此镜像将被设置为会话的默认值。一旦退出 R 并重新进入,你将被提示再次选择镜像。

安装完成后,我们可以加载 txtplot

library('txtplot')

如果没有错误消息,那么库已成功加载。现在让我们通过一个示例来看看它的效果,该示例演示了一个带有轴标签的基本绘图函数。该示例数据由 R 的 datasets 包提供,包含了 1920 年代的汽车速度和制动距离:

txtplot(cars[,1], cars[,2], xlab = "speed", ylab = "distance")
      +----+-----------+------------+-----------+-----------+--+120 +                                                   *    +|                                                        |
d 100 +                                                   *    +
i     |                                    *                *  |
s  80 +                          *         *                   +
t     |                                       * *    *    *    |
a  60 +                          *  *      *    *      *       +
n     |                        *         * *  * *              |
c  40 +                *       * *    *  *    * *              +
e     |         *      *  * *  * *  *                          |20 +           *    *  * *       *                          +|  *      *    *                                         |0 +----+-----------+------------+-----------+-----------+--+5          10           15          20          25speed

如果你对 txtplot 感兴趣,可以使用 help(txtplot) 来了解更多。

可以使用 install.packages() 从 CRAN 安装任何预编译的包。要了解更多可用内容,你可以在任何镜像上的“Packages”链接下找到按名称或发布日期组织的官方包列表。

结论

现在您已成功安装了 R,您可能对安装开源的 RStudio 服务器感兴趣。RStudio 服务器是一个运行在远程 Linux 服务器上的 R 版本的界面,它为您刚刚完成的基于服务器的部署带来了一个集成开发环境(IDE)。您可能还对如何直接从 GitHub、BitBucket 或其他位置安装感兴趣,以便充分利用活跃社区的最新工作。


http://www.ppmy.cn/devtools/113178.html

相关文章

前端发布 CDN缓存

公司给服务器加了CDN&#xff0c;导致有时前端代码上传打包后&#xff0c;正式环境页面效果却不更新。每次都需要去找运维刷CDN…让我彻底记住了CDN缓存 CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;是一种广泛使用的互联网技术&#xff0c;…

详解 Pandas 的 rename 函数

Pandas 的 rename 函数主要是用于对 DataFrame 的行名和列名进行重命名&#xff0c;其基本语法如下&#xff1a; 一、修改行名 1. 数据准备 import pandas as pddf pd.DataFrame({"Jan" : [1, 2, 3],"Feb": [4, 5, 6],"Mar": [7, 8, 9] })pr…

动态ip切换频率是快点好还是慢点好

在网络爬虫、数据采集、网络营销等活动中&#xff0c;动态IP切换成为了一种常见的策略&#xff0c;用以规避访问限制、提高访问效率或隐藏真实身份。然而&#xff0c;关于动态IP的切换频率&#xff0c;一直存在着一个争议&#xff1a;是切换得快点好&#xff0c;还是慢点好&…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve&#xff08;扩容&#xff09; 2. push_back&#xff08;尾插&#xff09; 3. iterator&#xff08;迭代器&#xff09; 4. append&#xff08;尾插一个字符串&#xff09; 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(3)

2.4、this指针 每个正常的成员函数调用都会隐含地传递一个指针给到对象&#xff0c;它就是被可能我的天this的隐藏参数。使用该指针访问数据成员或者调用成员函数&#xff0c;也可以将其传递给其他的成员函数或者函数。有时候它对消除有歧义的名字很有用。例如&#xff0c;可以…

Navicat使用 笔记04

Navicat调用数据库 1.创建一个自己的链接&#xff08;文件-->新建连接-->MySQL&#xff09; 进入到这个界面中&#xff1a; 【注意&#xff1a;密码是下载登录软件时设定过的】 创建一个连接完成&#xff08;通过双击激活&#xff09;。 2.在创建好的连接中创建数据库…

从零到一,数字文创IP是如何在基地中孵化成长的?

在数字时代的浪潮下&#xff0c;数字文创IP孵化基地正成为培育创新的肥沃土壤&#xff0c;见证着一个个数字文创 IP 从无到有、茁壮成长。 数字文创IP孵化基地首先为创意的萌发提供了空间。这里汇聚了各路富有创造力的人才&#xff0c;他们的思想在这里碰撞&#xff0c;灵感的火…

strncpy函数的使用和模拟实现

目录 1.头文件 2.strncpy函数功能 2.1情况二&#xff1a; 3.strncpy函数&#xff08;模拟实现&#xff09; 方源一把抓住VS2022&#xff0c;催动春秋产的气息&#xff0c;顷刻炼化&#xff01; 1.头文件 strncpy函数的使用需要包括头文件<string.h> #include<string…

Simulink常用英文单词缩写及基本操作

Simulink常用英文单词缩写及基本操作 常用快捷键 快捷键说明 Shift 鼠标左键加选选择多个元件拖动 Ctrl 鼠标左键复制选中的元件并跟随鼠标拖动复制操作 Del 删除选中的元件 Ctrl R 旋转元件 Ctrl I 水平翻转Flip Block Ctrl 另一个模块快速连接信号线自动连线 C…

94. 二叉树的中序遍历

思路 中序遍历的遍历顺序&#xff1a;左子树、根、右子树 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class S…

顺序表(c语言实现)

顺序表是一种数据结构&#xff0c;它在计算机内存中以连续的存储位置来存储数据元素。 一、特点 1. 随机访问&#xff1a;可以在常数时间内访问特定位置的元素&#xff0c;例如&#xff0c;通过下标可以快速找到对应元素。 2. 存储密度高&#xff1a;不需要额外的指针来链接…

车载软件架构 --- SOA设计与应用(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

RabbitMQ高级篇,进阶内容

强烈建议在看本篇博客之前快速浏览文章&#xff1a;RabbitMQ基础有这一篇就够了 RabbitMQ高级篇 0. 前言1. 发送者的可靠性1.1 生产者重试机制1.2 生产者确认机制1.3 实现生产者确认 2. MQ的可靠性2.1 MQ持久化2.2 LazyQueue 3. 消费者的可靠性3.1 消费者确认机制3.2 失败重试策…

openssh升级到openssh9.8p1版本

需要准备的RPM文件 openssh-9.8p1-1.el7.x86_64.rpm openssh-clients-9.8p1-1.el7.x86_64.rpm openssh-server-9.8p1-1.el7.x86_64.rpm如果需要编译文件,请参考文章:OpenSSH9.8p1编译rpm包 开始升级openssh 查询原openssh信息 查询原openssh是否有安装openssh-askpass,若…

FreeRTOS学习——链表list

FreeRTOS学习——链表&#xff08;列表&#xff09;list&#xff0c;仅用于记录自己阅读与学习源码 FreeRTOS Kernel V10.5.1 参考大佬的好文章&#xff1a; freertos内核原理 Day1(链表) FreeRTOS-链表的源码解析 *list_t只能存储指向list_item_t的指针。每个list_item_t都…

《并发之危:错误实现的并发数据结构如何“摧毁”程序》

在当今的软件开发领域&#xff0c;并发编程已经成为了一个不可或缺的部分。随着多核处理器的普及和软件系统规模的不断扩大&#xff0c;开发人员越来越多地需要利用并发来提高程序的性能和响应能力。而在并发编程中&#xff0c;并发数据结构的正确实现至关重要。一旦并发数据结…

TI DSP下载器XDS100 V2.0无法使用问题

前言 TI DSP下载器XDS100 V2.0用着用着会突然报Error&#xff0c;特别是你想要用Code Composer Studio烧录下载程序的时候 查看设备管理器&#xff0c;发现XDS100 V2.0的设备端口莫名其妙消失了 问了淘宝的厂家&#xff0c;他说TI的开发板信号可能会导致调试器通信信号中断&a…

gcc编译器详解

目录 GCC编译器详解gcc的编译流程gcc编译细节静态库&#xff08;gcc多个文件链接&#xff09;动态库 GCC编译器详解 因为后面我需要用到Makefile来管理文件&#xff0c;因此不得不先学习一下gcc的使用 &#xff0c;下面是一些具体的使用方法 gcc的编译流程 gcc编译的时候对应…

SQLite的入门级项目学习记录(一)

从来没有接触过数据库&#xff0c;但是最近有个项目要用到&#xff0c;从0开始记录一下学习的过程&#xff0c;以备忘。 python常见的几个免费数据库 在 Python 中&#xff0c;有几个流行的免费数据库选项&#xff0c;可以根据项目需求选择使用。以下是一些常见的免费…

模拟面试后端开发复盘

目录 一&#xff1a;项目的系统开发和设计思路 二&#xff1a;Java的反射是什么&#xff1f;在项目中有用到吗&#xff1f; 三&#xff1a;多态的实现原理 四&#xff1a;项目中的redis是用在了哪里 五&#xff1a;Session和Cookie的区别&#xff0c;Cookie可以被修改吗&a…