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
posted @ 2017-09-11 21:58  嘻呵呵  阅读(446)  评论(0编辑  收藏  举报