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