数据的探索性分析及R实现

一.读入数据
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为列变量#
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值