x <- 1:10
x
[1] 1 2 3 4 5 6 7 8 9 10
x+1 #每个元素都会+1,因为R的最基本数据单位是向量
[1] 2 3 4 5 6 7 8 9 10 11
x-3
[1] -2 -1 0 1 2 3 4 5 6 7
x <- x+1
x
[1] 2 3 4 5 6 7 8 9 10 11
y <- seq(1,100,length.out=10)
y
[1] 1 12 23 34 45 56 67 78 89 100
x+y #对应相加
[1] 3 15 27 39 51 63 75 87 99 111
x*y #对应相乘
[1] 2 36 92 170 270 392 536 702 890 1100
x**y #幂运算
[1] 2.000000e+00 5.314410e+05 7.036874e+13 5.820766e+23 1.039456e+35
[6] 2.115876e+47 3.213876e+60 2.697216e+74 1.000000e+89 1.378061e+104
y%%x #求余运算
[1] 1 0 3 4 3 0 3 6 9 1
y%/%x #整除运算
[1] 0 4 5 6 7 8 8 8 8 9
z <- c(1,2)
x
[1] 2 3 4 5 6 7 8 9 10 11
x+z
[1] 3 5 5 7 7 9 9 11 11 13 #z中的数据会循环使用
z <- 1:3
x
[1] 2 3 4 5 6 7 8 9 10 11
x*z #会报错,长向量元素个数必须是短向量的倍数
逻辑运算
x > 5
[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
x > y
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
c(1,2,3) %in% c(1,2,2,4,5,6)
[1] TRUE TRUE FALSE
x==y
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
计算函数
x <- -5:5
x
[1] -5 -4 -3 -2 -1 0 1 2 3 4 5
abs(x) #返回绝对值
[1] 5 4 3 2 1 0 1 2 3 4 5
sqrt(25) #计算平方根
[1] 5
log(16,base=2) #取对数,base为底数
[1] 4
log(16) #不加base默认为e
[1] 2.772589
log10(10)
[1] 1
exp(x) #计算指数
[1] 6.737947e-03 1.831564e-02 4.978707e-02 1.353353e-01 3.678794e-01 1.000000e+00
[7] 2.718282e+00 7.389056e+00 2.008554e+01 5.459815e+01 1.484132e+02
ceiling(c(-2.3,3.1415)) #不小于x的最小整数
[1] -2 4
floor(c(-2.3,3.1415)) #不大于x最大整数
[1] -3 3
trunc(c(-2.3,3.1415)) #返回整数
[1] -2 3
round(c(-2.3,3.1415)) #四舍五入
[1] -2 3
round(c(-2.3,3.1415),digits=2) #两位小数
[1] -2.30 3.14
signif(c(-2.3,3.1415),digits=2) #保留两位有效数字
[1] -2.3 3.1
sin(x)
[1] 0.9589243 0.7568025 -0.1411200 -0.9092974 -0.8414710 0.0000000 0.8414710
[8] 0.9092974 0.1411200 -0.7568025 -0.9589243
cos(x)
[1] 0.2836622 -0.6536436 -0.9899925 -0.4161468 0.5403023 1.0000000 0.5403023
[8] -0.4161468 -0.9899925 -0.6536436 0.2836622
统计函数
vec <- 1:100
sum(vec) #求和
[1] 5050
max(vec) #最大值
[1] 100
min(vec) #最小值
[1] 1
range(vec) #最小 最大值
[1] 1 100
mean(vec) #均值
[1] 50.5
var(vec) #方差
[1] 841.6667
sd(vec) #标准差
[1] 29.01149
prod(vec) #连乘
[1] 9.332622e+157
median(vec) #中位数
[1] 50.5
quantile(vec) #分位数
0% 25% 50% 75% 100%
1.00 25.75 50.50 75.25 100.00
quantile(vec,c(0.4,0.5,0.8))
40% 50% 80%
40.6 50.5 80.2
t <- c(1,4,2,5,7,9,6) #which返回索引值
which.max(t)
[1] 6
which.min(t)
[1] 1
which(t==7)
[1] 5
which(t>5)
[1] 5 6 7