R语言学习笔记(十一):零碎知识点(26-30)

时间:2023-03-10 06:53:58
R语言学习笔记(十一):零碎知识点(26-30)

26--aggregate( )

函数aggregate()对分组中的每一个变量调用tapply()函数。

aggregate(a,list,f)

  • 第二个参数必须是列表。也就是因子部分。
  • 第三个参数即函数 f 并不是面向数据框
> aggregate(iris[, -5], list(iris$Species), mean)
Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width
1 setosa 5.006 3.428 1.462 0.246
2 versicolor 5.936 2.770 4.260 1.326
3 virginica 6.588 2.974 5.552 2.026

27--cut()

cut()函数是生成因子的常用的方法

cut(a,b,labels = FALSE)

  • a为数据向量
  • 由向量 b 定义区间,区间为左开右闭,(b[1], b[2] ]
  • labels = TRUE输出区间,labels = FALSE 输出对应的第几个区间。
> a <- c(.3, .4, .7, .2, .1)
> b <- seq(0, 1, 0.1)
> cut(a,b)
[1] (0.2,0.3] (0.3,0.4] (0.6,0.7] (0.1,0.2] (0,0.1]
10 Levels: (0,0.1] (0.1,0.2] (0.2,0.3] ... (0.9,1]
> cut(a, b, labels = F)
[1] 3 4 7 2 1

28--findInterval()

findInterval (x, vec)

  • x 为数据向量
  • vec为一个单调递增的向量来产生区间
  • 产生的区间默认为左闭右开
> x <- 2:18
> v <- c(5, 10, 15)
> findInterval(x, v)
[1] 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3
> cbind(x, findInterval(x, v))
x
[1,] 2 0
[2,] 3 0
[3,] 4 0
[4,] 5 1
[5,] 6 1
[6,] 7 1
[7,] 8 1
[8,] 9 1
[9,] 10 2
[10,] 11 2
[11,] 12 2
[12,] 13 2
[13,] 14 2
[14,] 15 3
[15,] 16 3
[16,] 17 3
[17,] 18 3

29--&&,||

&是向量的逻辑“与”运算符

&&是标量的逻辑“与”运算符,因此,&&作用在两向量上只会比较第一个元素。

|与||的情况也是一样的

> a <- c(T, T, F)
> b <- c(T, F, T)
> a&&b
[1] TRUE
> a&b
[1] TRUE FALSE FALSE

30--pmin( )

pmin( ), pmax( ):把多个等长度的向量按元素逐个对比。返回所有向量的第K个元素中最小(最大)值。

> pmin(c(1,5,3), c(2,3,4))
[1] 1 3 3