导航

上一篇中我们一起学习了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/

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