第三章 数据预处理
-
基本数学函数
sum()
求和
prod()
连乘积
max()/min()
最大最小值
which.max()/which.min()
最大最小值的下标
range()
返回最值
length()
长度
mean()
均值
median()
中位数
quantile()
5个分位数
summary()
5个分位数和均值,也会显示各变量缺失值的个数
var()
方差或协方差
sd()
标准差
cov()
协方差
cor(x)
相关系数矩阵
cor(x,y)
线性相关系数
-
高级数学函数
pmin(x,y,…)/ pmax(x,y,…)
返回一个向量,其第i个元素是x[i],y[i],..的最小值/最大值
cumsum(x)
返回一个向量,其第i个元素是x[1],x[2],...x[i]的和
cumprod(x)
同上,求乘积
cummin(x)/cummax(x)
同上,求最小/最大值
mad(x)
离差
round(x)
对x中的元素四舍五入,至小数点后第n位
sort(x)/order(x)
排序,默认升序
rank(x)
求秩
rev(x)
取逆序
scale(x)
x是一个矩阵,中心化和标准化数据
unique(x)
x是向量或数据框,对重复的元素只取一个
na.omit(x)
忽略有缺失值NA的数据(x是矩阵或数据框则忽略行)
na.fail(x)
若包含缺失值,则返回错误信息
table(x)
统计x中完全相同的数据个数
table(x,y)
列联表
sample(x,size=n)
从x中抽取样本量为n的样本
skewness(x)
求偏度(属于timeDate包)
kurtosis(x)
求峰度(属于timeDate包)
emm(x,order)
k阶原点矩(属于Actuar包)
-
数据分组
cut(x,breaks,labels = NULL,include.lowest = FALSE,right = TRUE,...)
x 被转换的对象
breaks 单个数字,指明分几个组;一个向量,自行设置分组点;
labels 给每个组添加标签
include.lowest 指明区间的开闭情况
right 逻辑值,默认为左开右闭
举例
salary1 <- cut(salary,3)
breakpoints <- c(0,30,40,50,60,70)
salary2 <- cut(salary,breaks = breakpoints)
-
数据修改
-
修改数据标签
names()
-
行列删除
R用[]选取数据的子集,也可用来删除行列,只需要在行号和列号前加上-(负号)即可
data[-1,-3]
表示删除数据集data的第一行和第三列 -
缺失值处理
-
数据整理
-
数据合并
-
函数cbind()、rbind(),矩阵、向量、列表,按列或行拼接在一起,注意设置stringsAsFactors参数
-
构造data.frame
data.frame()
建数据框
names()
读取数据框的列名或重新给列名赋值
row.names
对数据框的行命名
数据框的取行或列 -
函数merge()
merge(x,y,by = ,by.x = ,by.y = ,all = ,all.x = ,all.y = ,sort = ,suffixes = ,incomparables = ...
主要参数如下:
x,y 要合并的数据集
by 指定要合并的依据(相同的行或列)
by.x,by.y 分别为第一个数据框和第二个数据框要连接的列名
all,all.x,all.y 逻辑值,默认为FALSE。以all.x = TRUE为例,表示X中的行没有相应的y值进行匹配时,用NA填充;若为FALSE,仅输出x和y中都包含的行。
- 选取数据的子集
用[]括号 - 数据排序
sort()
只能对向量进行简单的排序
order()
可以对含有多变量的数据集排序,主要参数如下:
** na.last ** FALSE缺失值放在最前,TRUE缺失值放在最后,NA缺失值删除
** decreasing **设置升序或降序,默认为FALSE即升序
sort.list()
与order()
作用相同 -
长宽格式的转换
t()
转置函数
- 揉数据函数
stack()
把一个数据框转换为两列,一列为数据,一列为对应的列名称
unstack()
stack()
的逆过程 - 揉数据的最佳伴侣
** reshape2 **包
melt()
acast()
dcast()
网友评论