从零开始系列-R语言基础学习笔记之二 数据结构(一)

上一篇中我们一起学习了R语言的环境搭建,这次我们开始学习R语言的数据结构第一部分:向量、数组和矩阵。

一、向量

向量是一维数组,其内容可以是数值、字符或布尔值,但所有数据的类型必须一致。创建向量使用的关键字是c,访问向量中的元素使用[],具体如下:

创建数值向量a<-c(1,2,3,4,5,6)

创建字符向量b<-c("a","b","c")

创建布尔向量c<-c(TRUE,FALSE)

访问向量:

a[3] 得到的值是3,注意不同于C、C++等语言,这里的索引是从1开始的,不是0。

a[c(2,3,4)] 得到的值是2 3 4

a[1:3] 得到的值是 1 2 3

a[7] 得到的值是NA

二、数组

不同于向量,数组的维数可以大于2,创建数组使用的关键字是array,用法是

array(data = NA, dim = length(data), dimnames = NULL)

例如使用a<-array(1:6,c(2,3)),a的结果如下:

访问数组同样使用[],a[2,2]得到的结果是4。

三、矩阵

矩阵是二维数组,其内容也可以是数值、字符或布尔值,但同向量一样,所有数据的类型必须一致。创建矩阵使用的关键字是matrix,用法是:

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)

其中byrow为TRUE时表示按行排列,默认为FALSE,即按列排列。

例如使用a<-matrix(1:8,2,4),a的结果如下:

而使用a<-matrix(1:8,2,4,TRUE)时,a的结果如下:

矩阵包括行名和列名属性,可通过rownames()和colnames()来定义,例如:

colnames(a)<-c("a","b","c","d")执行后,则a表示为

对矩阵的访问,可以单独取某行、某列,可以按行列名称访问,例如:

a[1,] 得到的结果是1 2 3 4

a[,1] 得到的结果是 1 5

a[1:2,1]得到的结果是1 5

a[1, "b"]得到的结果是2

a[c(1,2), "c"]得到的结果是 3 7

具体如下:

使用矩阵可以方便的进行计算,在定义两个同维度的矩阵a和b后,可以进行a/2,a*2,a+b,a-b等运算。也可以使用length(a)来计算矩阵的长度(元素个数)。

在下一篇中我们一起来看一下R语言数据结构的第二部分。

作者: bigdata大数据

出处: http://www.cnblogs.com/bigdata01/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 如有问题, 可邮件咨询。

时间: 2024-12-29 23:46:03

从零开始系列-R语言基础学习笔记之二 数据结构(一)的相关文章

C语言基础学习笔记

--C语言框架-- 数据  字节byte          字符   char         8  半字half word     短整型        short int    16    字word            整型   int(integer)   32               长整型   long int     32                 单精度   float        32   双字(double word) 双精度  double       64 

R语言可视化学习笔记之添加p-value和显著性标记

R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline 上篇文章中提了一下如何通过ggpubr包为ggplot图添加p-value以及显著性标记,本文将详细介绍.利用数据集ToothGrowth进行演示 #先加载包 library(ggpubr) #加载数据集ToothGrowth data("ToothGrowth") head(ToothGrowth) ## len supp do

js基础学习笔记(二)

2.1  输出内容(document.write) document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容. <script type="text/javascript"> document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出.

ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: <input name="UserName&quo

魏兆辉的IOS基础学习笔记之二 C语言基础-02

1. typedef 在前文中,我们用宏定义来定义了一个BOOL类型,那么现在就用更专业的方式来定义类型. typedef int Bool; int main (void){ Bool flag=1; if(flag) { printf("True"); } else { printf("false"); }} typedef 的作用就是类型定义(Type Definition). 类型定义有以下三个优点: 1. 易于阅读.比如我们可以把定义一个Dollar,然后

R语言入门学习笔记 - 对R软件的认识

1.安装R:自行百度? 2.R控制台(R Console)和R程序脚本: 打开R软件,就会直接打开控制台,控制台可以显示程序运行的结果.错误提示等信息,也可以直接输入想要执行的操作并立即返回运行结果,箭头">"表示等待输入. 程序脚本通过点击右上角"文件" - "新建程序脚本"来建立.如果想要长久的保存已经提交的程序代码,那么可以在程序脚本中编写,点击保存的时候会另存为一个后缀为".R"的数据文件,如果直接在控制台编写代

Java语言基础学习笔记(七)

烈7A茨谙9m繁5暗MChttp://www.zcool.com.cn/collection/ZMTg3NzE1Njg=.html 3馗iC蓖17握WM啦http://www.zcool.com.cn/collection/ZMTg3NzE2NTI=.html 夜H5P栏k睹19RH评http://www.zcool.com.cn/collection/ZMTg3NzE3MjQ=.html 帐褂61Z仔1D3都瓮1幽Vhttp://www.zcool.com.cn/collection/ZMTg

Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰

JavaBean(web基础学习笔记十二)

一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用, 有以下的优点: 可将HTML和Java代码分离,这主要是为了日后维护的方便.如果把所有的程序代码(HTML和Java)写到JSP 页面中,会使整个程序代码又多又复杂,造成日后维护上的困难. 可利用JavaBean的优点.将常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用Java