21--assign()
assign函数可以通过变量名的字符串来赋值
> assign('a', 1:3)
> a
[1] 1 2 3
> b <- c('a')
> assign(b, 1:5)
> b
[1] "a"
> a
[1] 1 2 3 4 5
22--split()
split(x,f)
- x 可以为向量或者数据框
- f 为对应的因子
- 函数以列表的形式返回
> a <- c(24,25,36,37)
> b <- c('q', 'w', 'q','w')
> split(a, b)
$q
[1] 24 36
$w
[1] 25 37
23--by()
by()函数与tapply()相似,by()可以用于数据框,而tapply不可以。
- by函数里面调用的函数 f 的对象是数据框,比如下例中的summary换为mean就不行。
> a <- c(24,25,36,37)
> b <- c('q', 'w', 'q','w')
> tapply(a, b, mean)
q w
30 31
> by(a, b, mean)
b: q
[1] 30
---------------------------------------------
b: w
[1] 31
> by(warpbreaks[, 1:2], warpbreaks[,"tension"], summary)
warpbreaks[, "tension"]: L
breaks wool
Min. :14.00 A:9
1st Qu.:26.00 B:9
Median :29.50
Mean :36.39
3rd Qu.:49.25
Max. :70.00
---------------------------------------------
warpbreaks[, "tension"]: M
breaks wool
Min. :12.00 A:9
1st Qu.:18.25 B:9
Median :27.00
Mean :26.39
3rd Qu.:33.75
Max. :42.00
---------------------------------------------
warpbreaks[, "tension"]: H
breaks wool
Min. :10.00 A:9
1st Qu.:15.25 B:9
Median :20.50
Mean :21.67
3rd Qu.:25.50
Max. :43.00
24--addmargins( )
函数addmargins()可以计算数据框或者矩阵的边际值。
> a <- list(c(5,2,6,2,6,5,6),c('q','w','q','q','w','q','q'))
> b <- table(a)
> addmargins(b)
a.2
a.1 q w Sum
2 1 1 2
5 2 0 2
6 2 1 3
Sum 5 2 7
25--unique( )
函数unique()返回 x 但是省去重复的数值
> x <- c(3:5, 11:8, 8 + 0:5)
> unique(x)
[1] 3 4 5 11 10 9 8 12 13