1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
### 作为集合的运算
## R语言中没有集合数据类型,但是可以将向量作为集合来计算
a = c(1,1,2,2,3,4,5)
b = c(2,2,2,2,3,5)
intersect(a,b) # 取交集,这里并不需要保证向量内元素唯一
union(a,b) # 取并集
setdiff(a,b) # 差集,a-b
### 描述性统计量
## 若有NA值可以加上na.rm=True参数
a = 1:100
length(a) # a中的元素个数
max(a) # a中元素的最大值
min(a) # a中元素的最小值
sum(a) # a中的所有元素之和
mean(a) # a中的元素均值
var(a) # a中所有元素的方差,自由度为n-1.想要计算整体方差应当乘以n-1/n
sd(a) # a中所有元素的标准差,自由度为n-1
median(a) # 中位数
quantiles <- quantile(a, probs = c(0.25, 0.75)) # 分位数,计算a的25%和75%分位数
### 向量的逻辑运算
## 同样,是对两个向量中对应元素依次进行计算或判断,若维数不相同则会循环补齐
a=c(TRUE,TRUE,FALSE,FALSE)
b=c(TRUE,FALSE,FALSE,TRUE)
a&b # 逻辑与
a|b # 逻辑或
!a # 逻辑非
a==b # 逐元素判断两个向量是否相等。
### 向量的数学运算
## 在进行两个向量运算时,R语言中会将较短的向量进行循环补齐直至和较长的向量维数一致。
a+1 # 每一个元素加上1,可以理解为R语言将一维向量循环补齐直至维数与a一致。
a-1 # 每个元素减去1
a*2 # 数乘,每个元素乘以2
a/2 # 每个元素除以2
a**2 # 每个元素平方
a+a # 对应元素相加,可以看成加减乘除的推广。本质是循环补齐特性。
a-a # 对应元素相减
a*a # 对应元素相乘
a/a # 对应元素相除
a**a # 对应元素计算幂
### 向量的简单线性代数运算
## 在不引入其它R包时,也可以进行一些简单的线性代数运算
a = 3:10
b = 4:11
t(a) # 向量的转置。R语言中向量默认为【列向量!】
dot_product = sum(a*b) # 点乘、内积
dot_product = a %*% b # 点乘的另一种写法,这种情况下生成的时1*1矩阵,必要时转为数值
dot_product <- as.numeric(dot_product)
l1_norm <- sum(abs(a)) # L1-范数
l2_norm <- sqrt(sum(a^2)) # L2-范数
|