r语言常用函数(二)

1.2.7 数据子集

可以在方括号内放入元素的位置来获取向量中的某个元素,正数x表示显示下标为x的元素,负数x表示不显示下标为x的元素。

> x<-c(-1,0,1,2,3)
> x[2]
[1] 0
> x[-2]
[1] -1  1  2  3

方括号中的命令是逻辑条件

> x<-c(-1,0,1,2,3)
> x[x>0]
[1] 1 2 3
通过函数names()来给向量中的元素命名

> x<-c(-1,0,1,2,3)
> names(x)<-c("1st","2nd","3rd","4th","5th")
> x
1st 2nd 3rd 4th 5th 
 -1   0   1   2   3 
当索引为空时,表示所有元素都被选定。空索引表示没有限制条件。

> x
1st 2nd 3rd 4th 5th 
 -1   0   1   2   3 
> 
> x
1st 2nd 3rd 4th 5th 
 -1   0   1   2   3 
> x[]<-0
> x
1st 2nd 3rd 4th 5th 
  0   0   0   0   0
注意:x<-0表示把含有单一元素(0)的向量赋给x,而x[]<-0表示把向量x中的所有元素都变成0。

1.2.8  矩阵和数组

数组存储的是多维数据元素,矩阵是数组的特殊情况,他只有两个维度。

创建矩阵,dim()和matrix()

> m<-c(1,2,3,4,5,6,7,8,9,10)
> m
 [1]  1  2  3  4  5  6  7  8  9 10
> dim(m)<-c(2,5)
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> m<-matrix(c(1,2,3,4,5,6,7,8,9,10),2,5)
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
函数cbind()和rbind()可以分别按列和行把两个或两个以上的向量或矩阵合并。

> m<-matrix(c(1,2,3,4,5,6,7,8,9,10),2,5)
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> cbind(c(11,12),m)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   11    1    3    5    7    9
[2,]   12    2    4    6    8   10

> rbind(c(1,2,3,4,5),m)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    1    3    5    7    9
[3,]    2    4    6    8   10

使用函数colnames()和rownames()分别给矩阵的列和行命名。

可以通过函数array()方便的创建数组

> a<-array(1:24,dim=c(4,3,2))
> a
, , 1

     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

, , 2

     [,1] [,2] [,3]
[1,]   13   17   21
[2,]   14   18   22
[3,]   15   19   23
[4,]   16   20   24

可以使用与向量索引同样的方法访问数组中的元素。

> a[1,3,2]
[1] 21
> a[1,,2]
[1] 13 17 21
> a[c(2,3),,-2]
     [,1] [,2] [,3]
[1,]    2    6   10
[2,]    3    7   11
循环规则和算数运算规则同样适用于矩阵和数组

> m1<-matrix(c(1,2,3,4,5,6),2,3)
> m2<-matrix(c(2,3,4,5,6,7),2,3)
> m1+m2
     [,1] [,2] [,3]
[1,]    3    7   11
[2,]    5    9   13








猜你喜欢

转载自blog.csdn.net/huanhuanxiaoxiao/article/details/78461681
今日推荐