9.1数值运算
> x <- 1:10
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x+1 #x向量中的每个元素都加1
[1] 2 3 4 5 6 7 8 9 10 11
> x-3 #x向量中的每个元素都减3
[1] -2 -1 0 1 2 3 4 5 6 7
> x <- x+1 #把x+1值重新赋给x
> x
[1] 2 3 4 5 6 7 8 9 10 11
> y <- seq(1,100,length.out=10) seq函数定义1到100,相隔10的向量y
> y
[1] 1 12 23 34 45 56 67 78 89 100
> x+y #x+y 一一对应相加
[1] 3 15 27 39 51 63 75 87 99 111
> x*y #x+y 一一对应相乘
[1] 2 36 92 170 270 392 536 702 890 1100
> x
[1] 2 3 4 5 6 7 8 9 10 11
> y
[1] 1 12 23 34 45 56 67 78 89 100
> x**y #x+y 一一对应幂运算
[1] 2.000000e+00 5.314410e+05 7.036874e+13 5.820766e+23
[5] 1.039456e+35 2.115876e+47 3.213876e+60 2.697216e+74
[9] 1.000000e+89 1.378061e+104
> y%%x #y除以x求余
[1] 1 0 3 4 3 0 3
> y%/%x #y除以x求整
[1] 0 4 5 6 7 8 8 8 8 9
####x和z的向量中元素不等的情况下
> z <- c(1,2)
> x
[1] 2 3 4 5 6 7 8 9 10 11
> x+z #z 向量中的元素是x的整数倍,z中的元素以循环的方式与x中元素相加
[1] 3 5 5 7 7 9 9 11 11 13
> z
[1] 1 2
> x*z z中的元素以循环的方式与x中元素相乘
[1] 2 6 4 10 6 14 8 18 10 22
> z <- 1:3
> z #z 向量中的元素不是x的整数倍
[1] 1 2 3
> x
[1] 2 3 4 5 6 7 8 9 10 11
> x+z #z 向量中的元素不是x的整数倍,不能进行运算
[1] 3 5 7 6 8 10 9 11 13 12
Warning message:
In x + z : 长的对象长度不是短的对象长度的整倍数
9.1逻辑运算
> x
[1] 2 3 4 5 6 7 8 9 10 11
> x>5
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
> y
[1] 1 12 23 34 45 56 67 78 89 100
> x>y
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> c(1,2,3) %in% c(1,2,3,4,5,6) #判断向量(1,2,3)的元素是否在向量(1,2,3,4,5,6)中
[1] TRUE TRUE TRUE
> c(1,2,3) %in% c(1,2,2,4,5,6) #判断向量(1,2,3)的元素是否在向量(1,2,2,4,5,6)中
[1] TRUE TRUE FALSE
> x == y #判断向量x和y是否相等
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
注:%in% 是很常用的判断一个向量元素是否在一个向量中的方法
9.3 常用的函数
序号 |
函数 |
作用 |
01 |
abs(x) |
求绝对值 |
02 |
sqrt(x) |
求平方根 |
03 |
log(16,base=2) |
16为要求的值,base为底数,不加base默认为自然对数 |
04 |
exp(x) |
计算x的指数 |
05 |
ceiling(x) |
返回不小于x的最小整数 |
06 |
floor(x) |
返回不大于x的最大整数 |
07 |
trunc(x) |
返回整数部分 |
08 |
round(x,digits=2) |
四舍五入,digits=2指保留两位小数 |
09 |
signif(x,digits=2) |
与round函数类似,只不过保留的是有效数字为2 |
10 |
sin(x),cos(x),tan(x) |
三角函数的运算 |
9.4 常用的统计函数
序号 |
函数 |
作用 |
01 |
sum(x) |
求和 |
02 |
max(x) |
返回向量x最大的元素 |
03 |
min(x) |
返回向量x最小的元素 |
04 |
range(x) |
直接返回最大值和最小值 |
05 |
mean(x) |
返回向量的均值 |
06 |
var(x) |
返回向量的方差 |
07 |
sd(x) |
返回向量的标准差 |
08 |
prod(x) |
求向量连乘的积 |
09 |
media(x) |
计算中位数 |
10 |
quantile(x,c(0.4,0.5,.0.8) |
分别计算x向量中的4分位数,中位数和8分位数 |
11 |
which.max(x) |
返回x向量中最大值所在的位置(索引值) |
12 |
which.min(x) |
返回x向量中最小值所在的位置(索引值) |
13 |
which(x==7) |
向量x中等于7的元素的位置(索引值) |
14 |
which(x>5) |
向量x中大于7的元素的所有位置(索引值) |