R语言学习笔记(十三):零碎知识点(36-40)
36--diag()
- 如果它的参数是一个矩阵,它返回的是一个向量
- 如果它的参数是一个向量,它返回的是一个向量
- 如果它的参数是一个标量,它返回的是指定大小的单位矩阵
> diag(2)
[,1] [,2]
[1,] 1 0
[2,] 0 1
> diag(2,3)
[,1] [,2] [,3]
[1,] 2 0 0
[2,] 0 2 0
[3,] 0 0 2
> diag(2,3,4)
[,1] [,2] [,3] [,4]
[1,] 2 0 0 0
[2,] 0 2 0 0
[3,] 0 0 2 0
> m <- matrix(1:4, nrow = 2)
> dm <- diag(m)
> dm
[1] 1 4
> diag(dm)
[,1] [,2]
[1,] 1 0
[2,] 0 4
37--sweep( )
sweep( )函数中的前两个参数类似于apply中的参数:数组和方向,在下面这个例子中,方向是1,表示按行计算,第四个参数表示的是要使用的函数,第三个参数是这个函数的参数。
> m
[,1] [,2]
[1,] 1 3
[2,] 2 4
> sweep(m, 1, c(2, 3), "+")
[,1] [,2]
[1,] 3 5
[2,] 5 7
38--%in%
c%in%y :检验c是否为集合y中的元素
> y <- c(1,3,5)
> 3%in%y
[1] TRUE
> 2%in%y
[1] FALSE
39--setequal()
setequal(x,y)检验x和y是否相等
> x <- c(1,2,3)
> y <- c(1,3,5)
> setequal(x, y)
[1] FALSE
> setequal(x, 1:3)
[1] TRUE
40--combn( )
combn( ) 用于产生集合元素的组合。
例如找出1到4中含有2个元素的子集,并对每个子集求和。
> combn(1:4, 2)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 2 2 3
[2,] 2 3 4 3 4 4
> combn(1:4, 2, sum)
[1] 3 4 5 5 6 7