当前位置: 首页 > 编程学习 > 其它语言 > R语言 > 正文

R语言学习笔记(十) 零碎知识点(21-25)

2018-04-22 来源:博客园/嘻呵呵

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