chapter05 高级数据管理
高级数据管理
1、数值和字符处理函数
(1)数学函数
函数 | 含义 |
---|---|
abs(x) | 绝对值 |
sqrt(x) | 平方根和25^(0.5)等价 |
ceiling(x) | 不小于x的最小整数,正无穷方向取整 |
floor(x) | 不大于x的最大整数,负无穷方向取整 |
trunc(x) | 向 0 的方向截取的x中的整数部分 |
round(x, digits=n) | 将x舍入为指定位的小数 |
signif(x, digits=n) | 将x舍入为指定的有效数字位数, |
signif(3.475, digits=2) | 返回值为3.5 |
cos(x)、 sin(x) 、 tan(x) | 余弦、正弦和正切 |
acos(x) 、 asin(x) 、 atan(x) | 反余弦、反正弦和反正切 |
cosh(x) 、 sinh(x) 、 tanh(x) | 双曲余弦、双曲正弦和双曲正切 |
acosh(x) 、 asinh(x) 、 atanh(x) | 反双曲余弦、反双曲正弦和反双曲正切 |
log(x,base=n) | n为底,x的对数 |
log(x) | e为底,x的对数 |
log10(x) | 10为底,x的对数 |
exp(x) | e指数函数 |
以上函数如果用于向量、矩阵或者数据框,则对每个元素进行运算。
(2)统计函数
函数 | 含义 |
---|---|
mean(x) | 均值 |
median(x) | 中位数 |
sd(x) | 标准差 |
var(x) | 方差 |
mad(x) | 绝对中位差 |
quantile(x,probs) | 分位数,probs一个[0,1]之间的概率数值向量 |
range(x) | 求值域 |
sum(x) | 求和 |
diff(x, lag=n) | 滞后差分,lag为滞后几项,默认为1 |
min(x) | 最小值 |
max(x) | 最大值 |
scale(x, center=TRUE, scale=TRUE) | 为数据对象x按列进行中心化(center=TRUE)或标准化(center=TRUE,scale=TRUE) |
(3)概率函数
分布 | 函数 |
---|---|
Beta分布 | beta |
Logistic分布 | logis |
二项分布 | binom |
多项分布 | multinom |
柯西分布 | cauchy |
负二项分布 | nbinom |
(非中心)卡方分布 | chisq |
正态分布 | norm |
指数分布 | exp |
泊松分布 | pois |
F分布 | f |
Wilcoxon符号秩分布 | signrank |
Gamma分布 | gamma |
t分布 | t |
几何分布 | geom |
均匀分布 | unif |
超几何分布 | hyper |
Weibull分布 | weibull |
对数正态分布 | lnorm |
Wilcoxon秩和分布 | wilcox |
1)、设定随机数种子
set.seed(),这样可以重现结果
2)、生成多元正态数据
|
|
(4)字符处理函数
函数 | 含义 |
---|---|
nchar(x) | 返回字符数量 |
substr(x,start,stop) | 提取货替换一个字符中的字串,substr(x,2,4)<-“xxx” |
grep(pattern, x, ignore. case=FALSE,fixed=FALSE) | 在x中搜索某种模式,fixed=FALSE则表示为一个正则表达式,若fixed=TRUE则为文本,返回下标 |
sub(pattern, replacement,x, ignore. case=FALSE,fixed=FALSE) | 在x中搜索某种模式,并替换为replacement,fixed=FALSE则表示为一个正则表达式,若fixed=TRUE则为文本 |
strsplit(x, split, fixed=FALSE) | 拆分字符串,fix同上 |
paste(…, sep=””) | 连接字符串,分隔符为sep |
toupper(x) | to大写 |
tolower(x) | to小写 |
(5)其他函数
函数 | 含义 |
---|---|
length(x) | 求长度 |
seq(from,to,by) | 生成序列 |
rep(x,n) | X重复n次 |
cut(x,n) | 将连续型变量x分割为有着n个水平的因子,使用选项ordered_result = TRUE以创建一个有序型因子 |
pretty(x,n) | 创建美观的分割点。通过选取n+1个等间距的取整值,将一个连续型变量x分割为n个区间。绘图中常用 |
cat(. .., file =”myfile”,append =FALSE) | 连接…中的对象,并将其输出到屏幕上或文件中(如果声明了一个的话) |
(6)函数应用到矩阵或数据框
|
|
一个数据处理问题:按照姓名排序并且对成绩评级
|
|
2、控制流
(1)重复和循环
- 低效费时,尽量使用内建函数与apply函数
1)
|
|
2)
|
|
(2)条件执行
1)
|
|
2)
|
|
3、用户自编函数
|
|
4、整合与重构
(1)转置
|
|
(2)聚合函数
|
|
(3)reshape包
1)融合
|
|
2)重铸
cast(md, formula,FUN) #md为已经融合的数据
formula: rowvar1 + rowvar2 +…~ colvar1 + colvar2 +…
在这一公式中, rowvar1 + rowvar2 + …定义了要划掉的变量集合,以确定各行的内容,
而colvar1 + colvar2 + …则定义了要划掉的、确定各列内容的变量集合。
参见图中的示例。