“ 本章节是数据预处理的第一步:了解数据(集)。只有充分了解了数据,我们才能对数据做进一步的预处理和后续深入的分析。”
目录
1 数据结构
str()
dim()
head()
2 描述性统计分析
summary()
psych::describe()
分组计算doBy::summaryBy
分组计算psych::describeBy
3 频数和列联表
table 一维计数
xtabs 多维(交叉)计数
gmodels::CrossTable #列联表
01
—
数据结构
严格来讲“数据结构”不是基本统计分析的内容,但是这是了解数据的第一步,因此这里做简单普及!推荐使用str()函数class() # 数据类型dim() # 数据(集)的行列数
nrow() # 数据(集)的行数,等价于dim(mtcars)[1]
ncol() # 数据(集)的列数,等价于dim(mtcars)[2]
View() # 查看数据(集)
head(X,n) # 显示数据集前n行
str() # 查看数据(集)类型、行列数,每列的数据类型和简要数据概况
02
—
描述性统计分析
描述性统计分析主要是认识数据的整体状况,例如是否缺失、均值、方差、中位数等描述性统计变量。
推荐使用summary()、psych::describe()
## 描述统计# 1.1 summary()
summary(mtcars) #具体查看下方示例
# 1.2 psych::describe
library(psych)
psych::describe(mtcars) #具体查看下方示例
# 1.3 Hmisc::describe
library(Hmisc)
describe(df)
# 1.4 aggregate() # 分组描述统计分析
myvars<-c("mpg","hp","wt")
aggregate(mtcars[myvars],by=list(am=mtcars$am),mean)
#输出结果am mpg hp wt1 0 17.14737 160.2632 3.7688952 1 24.39231 126.8462 2.411000
# 1.5 doBy包和psych包 具体查看下方示例
# 分组计算的扩展,doBy包和psych包提供了分组计算的描述性统计量的函数,doBy包中的summaryBy()函数使用的基本格式
summary()函数提供了最小值、最大值、四分位数、均值,另外还可以因子向量和逻辑型向量的频数统计
03
—
频数和列联表
推荐学习使用table、xtabs、gmodels::CrossTable
## 2.频数和列联表# 2.1 table #频数生成
table(mtcars$vs)
table(mtcars$gear)
# 将频数转换为比例
prop.table(table(mtcars$gear)) # prop.table()*100转化成百分比
# 2.2 二维列联表
# mytable<-table(A,B) A为行变量 B为列变量
# xtabs()函数还可以使用公式风格的输入创建列联表
# mytable<-xtabs(~A+B,data=mydata)
#其中mydata是一个矩阵或者数据框
# 三维以上列联表mytable<-xtabs(~Treatment+Sex+Improved,data=Arthritis)
mytable <- xtabs(~gear+vs, data = mtcars)
mytable
prop.table(mytable, 2) #按列计算百分比addmargins(mytable, 2) #增加行和
#使用CrossTable()创建二维列表
# install.packages("gmodels")
library(gmodels)
CrossTable(mtcars$gear, mtcars$vs)
“ 获取源代码请至数据驱动实践回复:20200524”