1.数据的特征
1.1 数据的集中特征
mean(M)
[1] 7.788
median(M)
[1] 7.25
quantile(M)
0% 25% 50% 75% 100%
0.800 4.075 7.250 11.250 17.400
length(M[M>=mean(M)])
[1] 23
summary(M)#返回数据M的概括性信息
Min. 1st Qu. Median Mean 3rd Qu. Max. 0.800 4.075 7.250 7.788 11.250 17.400
1.2 数据的离散特征
数据的离散特征主要包括了:极差、方差、标准差、分位差等
> M<-USArrests$Murder
> a<-range(M)#返回了数据的最大值和最小值,两者相减即为极差
> a
[1] 0.8 17.4
> a[2]-a[1]
[1] 16.6
> var(M)
[1] 18.97047
> sd(M)
[1] 4.35551
> b<-quantile(M)
> b
0% 25% 50% 75% 100%
0.800 4.075 7.250 11.250 17.400
> b[4]-b[2]
75%
7.175
2. 分布函数
R提供了四类分布函数:
- 概率密度函数(density)
- 累积分布函数(probability)
- 分位数(quantile)
- 随机数(random)
例如:
- dnorm():正态分布的概率密度函数
- pnorm():正态分布的累积分布函数
- qnorm():正态分布的分位数函数
- rnorm():正态分布的随机数生成函数
其他的分布函数用法类似,都是以d、p、q和r字母开头,然后紧接着分布函数的名称,如二项分布binom、指数分布exp、几何分布geom等
正态分布随机数生成函数的基本用法
rnorm(n, mean = 0, sd = 1)
- 参数n为所需要生成的随机数的个数
- mean为均值,默认为0
- sd为标准差,默认为1
如果要生成的随机数重复可使用:set.seed()
set.seed(101)
rnorm(3)
[1] -0.3260365 0.5524619 -0.6749438
rnorm(3)
[1] 0.2143595 0.3107692 1.1739663
set.seed(101)
rnorm(3)
[1] -0.3260365 0.5524619 -0.6749438
3. 数据汇总
3.1 table()函数统计频数
table()的主要功能:统计观测值出现的频数
table(..., exclude = if (useNA == "no") c(NA, NaN), useNA =
c("no", "ifany", "always"), dnn = list.names(...), deparse.level = 1)
- …表示一个或多个能够被理解为因子的对象,适合于考察类别型变量的统计分布
table(mtcars$cyl)
4 6 8
11 7 14
#变量cyl是汽车的气缸数量,从table()函数返回的结果中可以看出,拥有4、6、8个气缸的汽车分别为11、7和14辆
cyl<-mtcars$cyl
gear<-mtcars$gear
table(cyl,gear)
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
#首先创建两个变量cyl和gear,分别代表汽车的气缸数量和档位数量。使用函数table()返回的结果是两个变量的交叉频数情况。
3.2 addmargins()函数统计合计
addmargins(table(cyl,gear),c(1,2))
gear
cyl 3 4 5 Sum
4 1 8 2 11
6 2 4 1 7
8 12 0 2 14
Sum 15 12 5 32
#函数addmargins()中,其中数字1表示添加1行,以统计各列的合计值,数字2表示添加一列,以统计各行的合计值
3.3 prop.table()函数统计比例
prop.table(table(cyl,gear),1)
gear
cyl 3 4 5
4 0.09090909 0.72727273 0.18181818
6 0.28571429 0.57142857 0.14285714
8 0.85714286 0.00000000 0.14285714
#函数prop.table()接受的对象是一个table,其中数字1表示在计算比例时,按照每一行加总值等于1的方式来进行,如果选择数字2,则表示按照每一列加总值等于1的方式来进行
3.4 aggregate()函数分组统计
aggregate()函数:首先按照指定的分组变量将数据拆分成为若干子集,然后计算每个子集的统计概要,最后再把这些统计概要以一种合意的方式显示出来
aggregate(x, by, FUN, ..., simplify = TRUE)
- x为数据框
- by用于指定分组变量,分组变量的长度必须与数据框x中的变量长度相同,by必须是分组变量的列表
- FUN是所要计算的统计特征,如均值、分位数等,也可以是自己编写的任意函数
aggregate(mtcars$wt,by=list(cyl,gear),mean)
Group.1 Group.2 x
1 4 3 2.465000
2 6 3 3.337500
3 8 3 4.104083
4 4 4 2.378125
5 6 4 3.093750
6 4 5 1.826500
7 6 5 2.770000
8 8 5 3.370000
#使用分组变量为cyl和gear,来对变量wt计算其每个组的均值。Group.1和Group.2分别表示第一个分组变量cyl和第二个分组变量gear。x为所计算的均值
4. function()创建函数
R语言通过function()指令来命名和创建函数,其基本语法是:
f <- function(<arguments>){
## Do something interesting
}
- 首先要给函数赋值,也就是命名,然后在小括号中写入参数,最后再大括号中写入函数要执行的语句
- 在R中,可以将函数作为参数传递给其他函数,即嵌套
- 编写函数的过程中可以设置和命名参数,这些参数可以代表数值、矩阵、数据框或逻辑值等等。同时也可以设置一些具有缺省值(默认值)的参数