在上一篇中我们一起学习了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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 如有问题, 可邮件咨询。