R语言与数据分析—上(篇幅长,全)

news2024/11/22 6:36:40

内容过长但详细,分三篇写,总结分享也供日后参考回顾

一、什么是R语言

R是免费的,是一个全面的统计研究平台,提供了各式各样的数据分析技术,R拥有顶尖的绘图功能

二、R语言优点和缺点

优点

1、有效的数据处理和保存机制

2、拥有一整套数组和矩阵的操作运算符

3、一系列连贯而又完整的数据分析中间工具。图形统计可以对数据直接进行分析和显示,可用于多种图形设备

4、一种相当完善、简洁和高效的程序设计语言

5、R语言是彻底面向对象的统计编程语言

6、R语言和其它编程语言、数据库之间有很好的接口

7、R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差

8、R语言具有丰富的网上资源

缺点

1、不够规范,不容易上手,需要付出大量学习成本

2、扩展包不稳定

3、扩展包多,有很多重复功能,需要很多时间找自己需要的包

三、R软件的安装

1、登陆R官网 R: The R Project for Statistical Computing (r-project.org)

2、点击

3、选个离自己近的站点,我选的中国科技大学

4、选择版本

5、这个是二进制版本的R基础软件

6、就可以下载了

7、下载完成一直下一步安装即可

四、R软件的运行和设置

桌面双击图标,进入,一般32位的都有一个图标,64位的有俩,进去里面可以看到菜单,其他选项的内容都可以在控制台输入命令完成。窗口是最重要的部分,所有的工作都主要在这个窗口完成的

不管是什么系统,R语言都有三种运行方式:交互式、R脚本、R工作空间,打开R默认就是交互式的,可以通过写字板打开配置文件

我们可以在配置文件里自定义,加上First里放些自己常用的函数,Last里放点清理操作

五、Rstudio及基本操作

Rstudio是一款第三方开发的非常好用的R语言集成环境,软件把R控制台,绘图窗口、帮助窗口集成到一个界面下,还能补齐代码。必须先安装R软件,因为Rstudio是个集成环境不包括R软件,打开界面可以看到四个窗口

  1. 设定工作目录:很重要,所有输入和输出文件的默认位置,包括读取和写入数据等

  1. getwd()显示当前目录,setwd()修改目录

  1. 工作目录设置完就可以开始操作了,无需对变量进行声明

  1. 赋值运算符 ->/<-/<<-

  1. ls()列出变量,str()列出具体内容,ls.str()组合

  1. 删除工作空间不需要的变量可以是一个或多个rm(),删除之后无法恢复,没有回收站的功能,如果想删除所有的变量需要调用list函数,rm(list=ls())

  1. history()列出历史记录,()里可以写数字代表行数

  1. 清屏ctrl+L

  1. save.image()保存工作空间

  1. q()退出

六、R包的安装

可以根据官网的Task Views浏览R包,可以根据自己研究的方向到自己需要的类目去寻找自己需要的R包,学R包比学R还难,R包很多就好像手机APP,网址:The Comprehensive R Archive Network (r-project.org),再点击Task Views右边就可以看到各种各样的R包

安装R包的方式有两种,第一种联网在线安装,第二种代码安装,推荐第一种。安装包的函数install.packages(),括号里放入需要的R包,首次使用这个函数不加参数会提示选择镜像站点,我选择了一个比较近的,选择完后会弹出这个站点里的R包,R中使用字符串都需要加上引号,要是不输入引号就会把你输入的东西当做R的对象来处理,程序找不到这个对象就会报错。

联网在线安装

通过函数我们安装一下R包

有的时候镜像站点无法访问了,需要修改默认的镜像站点,我们可以修改Rprofile.set这个文件,修改里面的set a CRAN选项,默认是自动选择,要是选择不了,可以添加一个国内比较方便的站点

使用.libPaths()函数可以显示库的位置,在线安装会默认把R包安装到这个目录下

输入函数library()可以看到R包

使用代码安装

一些服务器为了安全无法访问网络采用代码安装的方式,要去R的官网或者镜像站点去下载源代码,需要注意依赖关系问题,如果提前知道依赖关系就要将依赖包一起下载上传到服务器,我们试着去安装一个包

这个包需要依赖plotrix这个包,我们将这两个包都下载下来

输入指令可以看到两个包,然后我们用R CMD INSTALL --help查看一下帮助信息

因为我们不能安装到R默认的库文件目录,所以需要通过这个选项指定包的安装目录

我们在当前目录下创建一个lib目录不需要解压缩

直接使用R CMD INSTALL接下载的包就可以开始安装

本地安装完R包使用时同样需要library进行加载,还需要将刚才创建的lib目录添加到系统的R_LIBS文件中,使用export

使用函数格式如下可以安装多个R包,使用update.packages()可以更新R包

七、R包的使用

R包分类

R软件本身包括:base、datasets、utils、grDevices、graphics、stats、methodes、splines、stats4、tcltk提供了种类繁多的默认函数和数据集。我们在使用的时候可以看到我们需要调用的函数属于哪个包,与R基础功能相关的函数就在base包中,datasets包用来存放R内置的数据集,grDevices与绘图设备选择相关的函数都在这个包中,graphics包是基于base图形的R函数,R默认绘图函数都放在这个包中。stats中用来存放与统计相关的函数,utils包是R语言工具函数,methodes包是R对象的一

般对应方法和类,splines,stats4,tcltk都是基础包

R包加载与删除

R包其实是函数数据预编译代码以一种定义完善的格式组成的集合,计算机上存储包的目录成为库叫library,函数.libPaths()能够显示库所在的位置,函数library()不加任何参数可以显示库中有哪些软件包,如果想使用R包可以使用library函数首先载入包,或者使用require(),这个时候就不需要引号了

下面两个函数可以看包的帮助文档,文档非常详细,有些R包比R本身还要复杂,这里面有用户指导手册、代码展示、实例展示、还有这个包的相关消息等,使用ls("package:vcd")看R包中包含的函数,使用data(package="vcd")可以列出R包中包含的所有数据集,使用完一个包之后想移除加载的包就detach("package=vcd"),如果想再使用就要重新加载,想删除已安装的包使用remove.packages("vcd")就从硬盘上彻底删除了

R包的批量移植

使用installed.packages()函数,列出当前函数已安装的R包,使用下标访问数据框的第一列,将所有R包的名字保存在同一个文件中,将这个文件移到另一台设备上,可以使用下标选择第一列保存成一个文件,然后在需要移植的设备使用load函数打开这个文件,存到另外一个变量R.pack中,我们可以使用一个for循环

八、R软件如何获取帮助

R软件在安装的时候会同时安装帮助文档,如果有图形化窗口,我们可以之间点击帮助选项,也可以在控制台终端中使用help函数,在R软件会调用浏览器打开,在Rstudio中会使用帮助窗口打开。要是查看某个函数的功能可以help()括号放函数的名字,也可以?后面接函数,这种更常用。想快速了解参数可以使用args(),example()函数可以查询实例,R还内置了demo函数,会列出R的一些案例图,必须先用library函数载用之后才能用help函数,也有一种方法使用??加函数,不用加载包也可以 简介、教程文档可以通过vignette()查看,不过不是所有都有文档,help.search("helpmap")进行本地搜索,也可以简写成??helpmap,apropos()列出所有包含关键字的内容,有的时候文档太老了就可以用网络搜索RsiteSearch(),看各种博客,查搜索引擎也可以(R seek)

九、Excel与R

Excel也是非常优秀的数据分析工具,两者最大的不同就是R软件不能使用鼠标,在R中都要使用代码完成,敲代码更适合批量化自动化,R一般用于大数据

十、R中内置数据集

数据集存储在R中的datasets包中,默认已经加载了这个包,这些数据都是真收集于真实的数据,有很多经典的数据集,也有许多很古老的数据,都是西方的。data()列出数据集,直接输入数据集的名字就可以使用数据集,这些数据集的名字都是内置的,我们给变量命名的时候最好不要重复了,不然就会被置换掉,不过影响不大,我们重新data()函数加载一下这个数据集就可以了

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

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

相关文章

LwIP系列--数据包处理和PBUF结构详解

一、目的在之前的博文中我们介绍了LwIP中的内存堆和内存池实现细节以及它们之间的优缺点对比。本篇我们将介绍LwIP中另一个比较重要的知识点&#xff0c;即数据包管理和PBUF结构&#xff1b;个人认为PBUF的设计是LwIP整个源码的亮点之一&#xff08;充分考虑了数据包处理的高效…

泛微发布数字化营销管理平台-九川汇

泛微全程数字化营销管理平台——九川汇&#xff0c;对内可以跨部门、跨组织高效协同&#xff0c;对外借助企业微信快速连接客户。 营销活动是企业运营中重要的一环&#xff0c;数字化工具如何满足企业的营销管理需求&#xff1a; 1、如何有效助力销售活动&#xff1a;帮助销售…

WebServer重写(一):日志库双缓冲和阻塞队列压测对比

目录前言重构动机模块介绍FileUtil&#xff0c;LogFile&#xff0c;LogStream&#xff0c;LoggingAsyncLogging&#xff08;重要&#xff09;压测源码前言 上次参考TinyWebserver的实现思路是&#xff1a;实现一个blockQueue, 然后实现一个日志接口类&#xff0c;这个接口类承…

ROS小车研究笔记1/31/2023 小车硬件结构及键盘移动控制节点

1 小车硬件结构 1 中控设备 上方的单片机用于控制电机运动&#xff0c;搭载wifi模块和电量显示屏。下方为树莓派&#xff0c;安装了ROS系统和Ubuntu系统&#xff0c;用于整个小车控制。显示屏和树莓派相连 2 传感器系统 激光雷达及转换器。激光雷达和转换器相连&#xff0…

【Rust】7. 枚举和模式匹配

7.1 枚举&#xff08;可存储不同类型的值&#xff09; 7.1.1 基本概念 7.1.2 枚举的简洁用法&#xff1a;构造函数 7.1.3 枚举的优势&#xff1a;处理不同类型和数量的数据 枚举成员的类型&#xff1a;字符串、数字类型、结构体、枚举注意&#xff1a;在未将标准库枚举引入当…

Java——两两交换链表中的节点

题目链接 leetcode在线oj题——两两交换链表中的节点 题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 题目示例 …

Vue中的$children与$parent讲解

$children与$parent直接演示代码父组件&#xff1a;<template><div><h2>BABA有存款: {{ money }}</h2><button>找小明借钱100</button><br /><button>找小红借钱150</button><br /><button>找所有孩子借钱2…

Day875.怎么给字符串字段加索引 -MySQL实战

怎么给字符串字段加索引 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于怎么给字符串字段加索引的内容。 现在&#xff0c;几乎所有的系统都支持邮箱登录&#xff0c;如何在邮箱这样的字段上建立合理的索引。 假设&#xff0c;现在维护一个支持邮箱登录的系统&…

【计算机图形学(译)】 一、介绍

【计算机图形学(译&#xff09;】 一、介绍1 介绍 Introduction1.1 图形领域 (Graphics Areas)1.2 主要应用 (Major Applications)1.3 图形APls (Graphics APIs)1.4 图形管线 (Graphics Pinpline)1.5 数值问题 (Numerical Issues)1.6 效率 (Efficiency)1.7 设计和编写图形程序 …

Detectron2部署教程,着重ONNX(从官网翻译)

本教程翻译至这里 https://detectron2.readthedocs.io/en/latest/tutorials/deployment.html detectron2模型训练以后如果想要部署&#xff0c;就需要导出专门的模型才可以。 三种模型导出方式 detectron2支持的模型导出方式有&#xff1a; tracing 该方式导出的格式是Torch…

常量池/String常见面试题

目录 常量池与运行时常量池 字符串常量池String_Table 字符串变量拼接 字符串常量拼接 字符串延迟加载 字符串intern方法 总结StringTable的特点 常量池与运行时常量池 二进制字节码包括 类的基本信息,常量池,类方法定义(包含虚拟机指令) class文件中除了有类的版本,字…

新突破:科学家发现全新的量子纠缠效应

布鲁克海文国家实验室&#xff08;图片来源&#xff1a;网络&#xff09;布鲁克海文国家实验室的科学家发现了一种全新的量子纠缠效应&#xff0c;即使宇宙距离相隔广阔&#xff0c;量子纠缠也会使粒子奇迹般地联系在一起。这一发现使他们能够捕捉到原子内部的奇特世界。这项研…

【算法自由之路】二叉树的递归套路

【算法自由之路】二叉树的递归套路 预热&#xff0c;二叉树的后继节点 话不多说&#xff0c;首先是一道练手题&#xff0c;寻找二叉树任意给定节点的后继节点&#xff0c;此二叉树具备一个指向父节点的指针。 后继节点&#xff1a;在中序遍历中于给定节点后一个打印的节点 p…

SpringBoot实现配置文件的加密和解密

一、项目搭建 1.新建一个springBoot项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocatio…

DAMO-YOLO : A Report on Real-Time Object Detection Design

DAMO-YOLO:实时目标检测设计报告在本报告中&#xff0c;我们提出了一种被称为DAMO-YOLO的快速准确的物体检测方法&#xff0c;该方法比最先进的YOLO系列具有更高的性能。DAMO-YOLO是由YOLO扩展而来的&#xff0c;它采用了一些新技术&#xff0c;包括神经结构搜索(NAS)、高效的重…

LeetCode——1669. 合并两个链表

一、题目 给你两个链表 list1 和 list2 &#xff0c;它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除&#xff0c;并将list2 接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果&#xff1a; 请你返回结果链表的头指针。 来…

【Qt】3.菜单栏、工具栏、状态栏、铆接部件、核心部件、资源文件

目录 菜单栏 工具栏 代码 mainwindow.cpp 结果 状态栏 铆接部件 核心部件 代码 mainwindow.cpp 结果 资源文件 代码 mainwindow.cpp 结果 菜单栏 只能有一个 menuBar()返回一个QMenuBar *bar 将bar放入到窗口中setMenuBar(bar) 添加菜单addMenu("文件&…

三年了,回村了

今年回老家了&#xff0c;因为工作和疫情等原因已经三年多没回了&#xff0c;思乡之情已经压不住了。 老家是一个五线小城市&#xff0c;属于南方典型的鱼米之乡&#xff1a;依山傍水、山清水秀。同时还有一个知名白酒厂&#xff1a;白云边&#xff0c;经济发展还不错。 老家…

从“语义网”到“去中心化”,Web3.0到底是个啥?

什么是Web3.0&#xff0c;为什么近两年这个概念又再一次火出了圈&#xff0c;但凡A股上市公司正在做或者准备做的业务与它沾上边&#xff0c;总会有那么几次异动。 这个概念到底是金融市场布下的骗局&#xff0c;还是未来互联网发展的趋势&#xff0c;在大家的眼里都是褒贬不一…

Redis 核心原理串讲(下),架构演进之高扩展

文章目录Redis 核心原理总览&#xff08;全局篇&#xff09;前言一、数据分片1、集群&#xff1f;2、分片&#xff1f;3、分片固定&#xff1f;4、元数据二、集群1、代理集群2、分片集群3、代理 分片集群三、生产实践总结Redis 核心原理总览&#xff08;全局篇&#xff09; 正…