- 数值与字符处理函数
-
- 数学函数,对象非单个数值时,会作用于每个数值
- 绝对值abs()
- 平方根sqrt()
- 舍入小数round(,digits=)
- 对数
- log(x,base=n)以n为底
- log()以e为底
- log10()以10为底
- 指数exp(x),以e为底指数
- 统计函数na.rm=T,计算时移除NA;trim=0.05,去除了前后5%的数据再计算,当没有足够的数据时,不会去掉极值
- 均值mean()
- 标准差sd()
- 方差var()
- 分位数quantile(x,probs=c()),probs分位点
- 中心化、标准化scale(x,center=T,scale=T),标准化即z分数
- 概率函数
- 不同函数的前缀
- 密度函数d,即分布的y值
- 分布函数p,求面积,p-(z),标准分布下的面积
- 分位数函数q,q-(0.9分位点,……),某分布下的分位点0.9等
- 生成随机数r
- 分布
- 指数分布exp
- 对数分布logis
- 正态分布norm
- t分布t
- 均匀分布unif
- 设定随机数种子
- set.seed(x)……,x种子下的随机函数结果
- 不同函数的前缀
- 字符处理函数
- 字符数量nchar()
- 提取或替换字符substr(对象,from,to)
- 在X中搜索模式grep(pattern,x,fixed=F),fixed=F模式为正则表达式,T模式为文本字符串
- 连接字符串paste(……,sep=""),sep每个连接的分隔
- toupper、tolower,大小写转换
- 其他函数
- 生成序列seq(from,to,by)
- 重复rep(x,n)
- 将连续变量分割为n个水平的因子cut(x,n),ordered_result=T创建有序因子
- 创建美观的分割点pretty(x,n),选取n+1个等间距的取整值
- 连接……中的对象,并将其输出到屏幕或文件上cat(……,file="",append=F),cat输出连接对象会对每个对象用空格分开,甚至是.,所以作为句号必须在前面加上\b
- 函数用于矩阵和数据框:
- 针对维度apply(x,margin,FUN),margin=1表示行,2表示列
- split(对象,分组属性),返回是列表;可以多重分组,用list()来标明
- apply:lapply、sapply、tapply只能针对一个属性的分组进行函数
- apply(X, MARGIN, FUN, ...),x是数组、矩阵(数据框);margin=1|2,对行|列操作;fun函数
- lapply(split,FUN)结合split使用,lapply针对列表中的每个元素使用fun,可以没有margin,返回列表
- sapply同上,返回的是更紧凑的格式
- tapply(对象,分组属性,FUN)简化了split函数,返回列表
- 控制流
- for(var in seq(from,to,by)) {}
- while(cond) {}
- 条件执行
- if(cond) …… else ……
- ifelse(cond,T-stat,F-stat),R语言特有,输出结果为向量,对每个向量中的元素进行判断
- switch(i,……),……是i的可能值绑定的语句
- 用户自编函数最好有一个表达式来捕获错误输入;所有的输出只能在函数中才有意义,所以用return
- 整合与重构
- 转置t()
- 整合aggregate(x, by, FUN, ..., ),x可以是多个属性的数据,by分组依据(相同分组属性值为一组),FUN是用来计算新观测中的值,by必须是list形式by=list(),by中的变量可以可以自定义名称;或者aggregate(a~b, x, FUN, ..., ),b为标识,a为整合量
- reshape2包
- 融合melt(x,id=c()),id即主键,结果是主键下的属性和属性值
- 重铸dcast(melt,formula,fun.aggregate),melt为已融合数据,formula为结果结构row1,……~col1,……,fun为数据整合函数(可选的)
- 数学函数,对象非单个数值时,会作用于每个数值