专栏首页PPV课数据科学社区R与数据分析学习总结之一:R语言基本操作

R与数据分析学习总结之一:R语言基本操作

最近开始学习R语言,把学习笔记和小伙伴们分享一下吧,欢迎一起交流

R 起源:

R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输入,可实现分支、循环,用户可自定义功能。 R是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的,在那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。

R基本操作:

点开R语言就看到了如下操作界面,这也是我们和R语言内部算法交互的最主要途径。

“>”类似于cmd下的录入提示符一样,我们可以从这里录入数据,进行数据处理等。首先我们先录入两个数组:x1= c(1 2 3 4 5)和x2=c(‘1’,‘2’,‘3’,‘4’,‘5’)其中“c()”是R语言的录入数组的函数,R语言每一行只能执行一个操作,录入x1后回车继续录入x2;录入完后,数据就存放于内存,后续只需调用x1标识符即可对数组(1,2,3,4,5)进行操作。

1、 数组基本的操作:

1) 、查看数组---直接调用数组名回车;

2) 、按照下标获取数组元素---调用数组名+方括号+元素下标;

3)、查看数组长度(length());

4)、查看数组元素类型(mode(); ps:语言只支持数组元素单一类型,及所有元素要么都是字符,要么都是数值)

5)、对数组的操作还包括多个数组的包括,可以将两个数组组合成一个矩阵(R语言称之为数据框:frame),可以将数组按照行向量组合rbind()和列方向的组合cbind();

Ps:将字符类型数组和数值类型数组合并的结果是新的矩阵元素都为字符串类型;

具体的使用和输出如下:

2、有关数组的统计指标处理:

常见的统计指标包括:平均值(mean())、求和(sum())、连乘(prod())、最值(min()、max())、方差(var())、标准差(sd())

首先我们先借助R的快速生成数组函数c(startNum:endNum)生成1到100个数字并存放于数组y内,然后对其进行相应统计指标输出,具体见下图:

3、 关于数据下标的相关处理

R语言提供了实用的下标处理函数,我们可以方便的取出理想数据,例如:

1)、取连续下标的元素;

2)、按照其他数组元素的值取---以其他数组元素的值取出相应本数组对应下标的元素;

3)、按照元素值的大小取,如可以去除数组中大于某个数的所有元素,小于某个数的所有元素等等;

4)、实用的which函数,which在数组下标中代表该数组对象,可以通过which取出数组元素a[which()],相应的也可以取出符合元素的下标which();

5)、自排序函数(sort())和数组反转函数(rev());

具体使用及输出如下:

3、生成矩阵和矩阵操作相关函数:

R提供了数组转矩阵的函数(matrix()),矩阵是后续很多工作的开始:

1)、矩阵进行加减(+-)、相乘(%*%):

Ps:数组生成矩阵时,默认是按照列方向进行,可以加参数byrow=T,使其按行方向生成矩阵

2)、取对角线(diag())、转置(t())

3)、求逆(solve)、解线性方程组(solve):

求特征值特征向量(eigen())

R语言的基本数据结构—数据框

数据框也是矩阵形式,但不同于一般的矩阵,数控框中的列可以是不同的数据类型,每一列即为一个属性值,每一行即为条记录,或为一个对象的所有属性的观测值。

R语言读取外部数据---文本数据:

逻辑循环控制:

R语言支持for循环和while循环,两种循环结构上和通用编程语言类似,但有少数差异。

Ps: R中数组下标从1开始;R不支持“++”

今天就贴到这啦,希望对小伙伴有帮助,下次换R语言之绘图篇。

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python学习手册:NumPy快速参考表

    如果你想用Python做数据分析,那么NumPy是你必须掌握的其中一个基础计算包。它可以很好的替代Python列表,因为NumPy数组更紧凑,允许快速读写访问,...

    小莹莹
  • 【资讯】甲骨文推出大数据SQL今年秋季上市

    企业正在寻求以创新方式管理尽可能多的数据及数据源。尽管Hadoop、NoSQL等技术提供了应对大数据问题的具体方法,但是这些技术却可能引入数据孤岛,导致形成关键...

    小莹莹
  • 什么是最大似然估计、最大后验估计以及贝叶斯参数估计

    假如你有一个硬币。你把它投掷 3 次,出现了 3 次正面。下一次投掷硬币正面朝上的概率是多少? 这是一个从数据中估计参数的基础机器学习问题。在这种情况下,我们要...

    小莹莹
  • js--数组方法

    01、concat()---合并数组的方法 02、join(separator)--把数组的所有元素放入一个字符串。元素通过指定的分隔符separator进行分...

    小蔚
  • 房上的猫:数组

    一.数组:  1.定义:   (1)数组就是一个变量,用于将相同数据类型的数据储存在内存中   (2)数组中的每一个数据元素都属于统一数据类型  2.基本要素:...

    房上的猫
  • javascript中Array的操作

    concat(组合数组) join(数组转字符串) pop(删除最后一个元素) shift(删除第一个元素) push(在数组尾部添加新元素) unshift(...

    Java中文社群_老王
  • Day 1-Java-imooc-5.数组

    课程地址:http://www.imooc.com/learn/85 总结图片来自 http://www.imooc.com/article/10535 ? -...

    杨熹
  • 【Java提高十五】数组

    一、什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变的!...

    奋斗蒙
  • 数组方法整理

    mcq
  • 数组未必一定需从0开始,谈一下非0开始的数组

      谈到数组时,当被问及数组是从什么数开始时,估计大部分程序员都会直接说出数组当然是从0开始的。这个回答当然没有错,现在我们就来了解一下C#中的下限非...

    彭泽0902

扫码关注云+社区

领取腾讯云代金券