一.读入数据
city=read.csv("2015city.csv")
二.描述性统计
- 样本量、均值、方差、标准差、中位数、最小值、最大值、上百分位数与下百分位数差、百分位数、极差、变异系数、偏度系数、峰度系数
data.outline=function(x)
## input ###################
## x = a vector ############
## output ##################
## the outline of data x ###
{
n = length(x)
m = mean(x)
v = var(x)
s = sd(x)
me = median(x)
m1 = min(x)
m2 = max(x)
Q1 = quantile(x, 1/4)
Q3 = quantile(x, 3/4)
R = m2-m1
R1 = Q3-Q1
cv = s/m
skew = sum((x-m)^3/s^3)/n
kurt = sum((x-m)^4/s^4)/n-3
return(list(size=n, Mean=m, Var=v, Std=s, Median=me,
Min=m1, Max=m2, Q1=Q1, Q3=Q3, R=R, R1=R1,
CV=cv, Skew=skew, kurtosis=kurt))
}
- 通过summary()计算描述性统计量
通过sapply()计算描述性统计量
使用aggregate()分组获取描述性统计量
使用doBy()包中的summaryBy()分组计算概述统计量
三.列联表
library(vcd)
- 一维列联表:
table(A) #用table()函数生成简单的频数统计表#
prop.table(A) #用prop.table()函数将这些频数转化为比例值#
- 二维列联表:
able(A,B)
xtabs(~A+B,data=mydata) #其中A是行变量,B是列变量#
- 生成边际频数和比例:
margin.table(table3,1) #按行#
margin.table(table3,2) #按列#
prop.table(table3) #整个表#
prop.table(table3,1) #按行#
prop.table(table3,2) #按列#
- 为表格添加边际
addmargins(table3)
addmargins(prop.table(table3))
- 使用crosstable()生成二维列联表
library(vcd)
library(gmodels)
crosstable(mydata$A,mydata$B) #A为行变量,B为列变量#