R1 Lecture 02 Class Notes
by YU,Xiang
Mar 10, 2015
R数据结构
- 向量
- 矩阵
- 数组
- 列表
- 数据框
向量
向量的生成
c(2,4,6,7,8)
## [1] 2 4 6 7 8
12:30
## [1] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
seq(from=3,to=50,by=2)
## [1] 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47
## [24] 49
rep(x=1:5,times=5:1)
## [1] 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
rep(x=1:5,each=3)
## [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
向量的修改
a <- 1:10
a[2*1:5] <- 2*1:5+1
a
## [1] 1 3 3 5 5 7 7 9 9 11
下标和逻辑值
# 求一百以内能被7整除的数
seq(from=7,to=100,by=7)
## [1] 7 14 21 28 35 42 49 56 63 70 77 84 91 98
x <- 1:100
x[x %% 7 == 0]
## [1] 7 14 21 28 35 42 49 56 63 70 77 84 91 98
# 求一百以内不能被7整除的数
x <- 1:100
x[x %% 7 != 0]
## [1] 1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19
## [18] 20 22 23 24 25 26 27 29 30 31 32 33 34 36 37 38 39
## [35] 40 41 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59
## [52] 60 61 62 64 65 66 67 68 69 71 72 73 74 75 76 78 79
## [69] 80 81 82 83 85 86 87 88 89 90 92 93 94 95 96 97 99
## [86] 100
# 求一百以内能同时被3和7整除的数
x[x%%3==0 & x%%7==0]
## [1] 21 42 63 84
# 求一百以内能被3或者7整除的数
x[x%%3==0 | x%%7==0]
## [1] 3 6 7 9 12 14 15 18 21 24 27 28 30 33 35 36 39 42 45 48 49 51 54
## [24] 56 57 60 63 66 69 70 72 75 77 78 81 84 87 90 91 93 96 98 99
矩阵
矩阵的生成
matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
## [,1]
## [1,] NA
练习:
1.生成一个1到20,4行5列,按行排列的矩阵
m1 <- matrix(1:20,nrow=4,byrow=T)
2.把这个矩阵的’前3行&后3列’取出来
m1[1:3,3:5]
## [,1] [,2] [,3]
## [1,] 3 4 5
## [2,] 8 9 10
## [3,] 13 14 15
3.m1从除去第三行和第三列所生成的矩阵是?
m1[-3,-3]
## [,1] [,2] [,3] [,4]
## [1,] 1 2 4 5
## [2,] 6 7 9 10
## [3,] 16 17 19 20
矩阵的运算
加,减,转置,两种乘法
合并(按行,按列)
行名和列名
练习:
1.生成一个
5×5
的矩阵,其
i
行
m4 <- matrix(rep(1:5,each=5),nrow=5,byrow=TRUE)
m5 <- matrix(rep(1:5,each=5),nrow=5)
m4 + m5
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 3 4 5 6
## [2,] 3 4 5 6 7
## [3,] 4 5 6 7 8
## [4,] 5 6 7 8 9
## [5,] 6 7 8 9 10
作业02
- 生成公元元年到公元1000年中,所有闰年的年份
(闰年的定义: 能被4整除,且不能被100整除,但能被400整除的除外)
2.生成一个 5×5 的矩阵,其i行j列的值是 i×j+i+j+2