注:R语言的再复习之路
1. 数值和字符处理函数
1.1 数学函数
函数 描述 ceiling(x) 不小于x的最小整数 floor(x) 不大于x的最大整数 round(x, digits = n) 将x舍入为指定位的小数 signif(x, digits = n) 将x舍入为指定有效数字位的数
1.2 统计函数
函数 描述 median(x) 中位数 mad(x) 绝对中位差 quantile(x, probs) 求分位数。x为待求分位数的数值型向量,probs为一个由[0, 1]之间的概率值组成的数值型向量 scale(x, center = TRUE, scale = TRUE) 为数据对象x按列进行中心化(center = TRUE)或标准化(center = TRUE, scale = TRUE)
1.3 概率函数
在R中,概率函数如下所示: [dpqr]distribution_abbreviation()
, 其中d = 密度函数(density) p = 分布函数(distribution function) q = 分位数函数(quantile function) r = 生成随机数(随机偏差)
分布名称 缩写 Beta分布 beta 二项分布 binom 柯西分布 cauchy 卡方分布 chisq 指数分布 exp F分布 f Gamma分布 gamma 几何分布 geom 超几何分布 hyper 对数正态分布 lnorm Logistic分布 logis 多项分布 multinom 负二项分布 nbinom 正态分布 norm 泊松分布 pois t分布 t 均匀分布 unif
获取多元正态分布的数据利用MASS包中的mvrnorm(n, mean, sigma)
函数
1.4 字符处理函数
函数 描述 nchar(x) 计算x中的字符数量 substr(x, begin, end) 提取或替换一个字符向量中的子串 strsplit(x, split, fixed = FALSE) 在split处分割字符向量x中的元素。若pattern = FALSE,则pattern为一个正则表达式,若fixed = TRUE, 则pattern为一个文本字符串 paste(…, sep = ’ ') 连接字符串,分隔符为sep
1.5 其他实用函数
函数 描述 seq(from, to, by) 生成一个序列 rep(x, n) 将x重复n次 cut(x, n) 将连续型变量x分割为有着n个水平的因子,使用ordered_result = TRUE可以创建一个有序型因子 pretty(x, n) 选取n+1个等间距的取整值,将一个连续型变量x分割为n个区间 apply(x, MARGIN, FUN, …) x为数据对象,MARGIN为维度下标,MARGIN = 1表示行,MARGIN = 2表示列 sapply(x, ‘[’, index) x为列表,’['是一个可以提取某个对象的一部分的函数,index = i则提取第i个元素
2. 控制流
2.1 重复和循环
2.1.1 for结构
for ( var in seq) statement
for ( i in 1 : 10 ) print( 'Hello!' )
2.1.2 while结构
while ( cond) statement
i <- 10
while ( i > 0 ) { print( 'Hello!' ) ; i <- i - 1 }
2.2 条件执行
2.2.1 if-else结构
if ( cond) statement1 else statement2
if ( ! is.factor( grade) )
grade <- as.factor( grade)
else
print( 'Grade already is a factor' )
2.2.2 ifelse结构
ifelse( cond, statement1, statement2)
outcome <- ifelse( score > 0.5 , 'Passed' , 'Failed' )
2.2.3 switch结构
switch( expr, ... )
feelings <- c( 'sad' , 'afraid' )
for ( i in feelings)
print(
swwitch( i,
happy = 'I am glad you are happy' ,
afraid = 'There is nothing to fear' ,
sad = 'Cheer up' ,
angry = 'Calm down now'
)
)
3. 用户自编函数
myfunction <- function ( arg1, arg2, ... ) {
statements
return( object)
}
4. 整合与重构
4.1 转置
函数t()
4.2 整合数据
aggregate( x, by, FUN)
attach( mtcars)
aggdata <- aggregate( mtcars, by = list( cyl, gear) , FUN = mean, na.rm = TRUE )
4.3 reshape2包
4.3.1 融合
melt( data, id.vars, variable.name, value.name)
melt( mydata, id.vars = c( 'ID' , 'Time' ) , variable.name = 'variables' , value.name = 'value' )
4.3.2 重铸
newdata <- dcast( md, formula, fun.aggregate)