语言扩展包数据加工厂plyr视频教程3课_第1页
语言扩展包数据加工厂plyr视频教程3课_第2页
语言扩展包数据加工厂plyr视频教程3课_第3页
语言扩展包数据加工厂plyr视频教程3课_第4页
语言扩展包数据加工厂plyr视频教程3课_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

R七种之数据plyr讲师R七种之数据DATAGURU专业数据分析社区plyr——第3周法律【】和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,不得在课程以外范围散播,违者将可能被法律和经济责任。课程详情

炼数成金培训http:

DATAGURU专业数据分析社区R七种之数据plyr讲师关注炼数成金企业提供全面的数据价值资讯,涵盖商业智能与数据分析、大数据、企业信息化、数字化技术等,各种高性价比课程信息,赶

出您

机关注吧!DATAGURU专业数据分析社区R七种之数据plyr讲师案例分析baseball案例ozone案例DATAGURU专业数据分析社区R七种之数据plyr讲师Baseball数据集职业棒球球手15年或以上的击球记录Baseball数据集包含了全id:棒球选手year:记录的年份rbi:runsbatted

in,该球员在某一赛季的击球的跑垒得分ab:number

of

times

at

bat,击球次数head(baseball,5)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball求某一选手职业生涯时间baberuth

<-

subset(baseball,

id

==

"ruthba01")baberuth

<-

transform(baberuth,

cyear

=

year

-

min(year)+

1)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball求所有选手的职业生涯时间baseball

<-

ddply(baseball,.(id),

transform,cyear

=

year

-

min(year)

+

1)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball生成所有人的rbi/ab的时间序列图并保存到pdf中baseball

<-

subset(baseball,

ab

>=

25)xlim

<-

range(baseball$cyear,

na.rm=TRUE)ylim

<-

range(baseball$rbi

/

baseball$ab,

na.rm=TRUE)plotpattern

<-

function(df)

{qplot(cyear,

rbi

/

ab,

data

=

df,

geom

=

"line",

xlim

=xlim,

ylim

=

ylim)}pdf("paths.pdf",

width

=

8,

height

=

4)d_ply(baseball,

.(reorder(id,

rbi

/

ab)),

failwith(NA,

plotpattern),.print=TRUE)dev.off()DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseballDATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball对ruthba01做线性回归model

<-

function(df)

{lm(rbi

/

ab

~

cyear,

data

=

df)}model(baberuth)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball对所有选手做线性回归bmodels

<-

dlply(baseball,

.(id),

model)rsq

<-

function(x)

summary(x)$r.squaredbcoefs

<-

ldply(bmodels,

function(x)

c(coef(x),

rsquare

=

rsq(x)))names(bcoefs)[2:3]

<-

c("intercept",

"slope")head(bcoefs,5)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball查看线性方程拟合效果hist(bcoefs$rsquare,breaks=20,col="black")DATAGURU专业数据分析社区R七种之数据plyr讲师案例:baseball找出拟合得较好的模型baseballcoef

<-

join(baseball,

bcoefs,

by

=

"id",type="inner")subset(baseballcoef,

rsquare

>

0.999)$idmatch_df(baseball,subset(baseballcoef,

rsquare

>

0.999),on="id")DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone数据集介绍:Ozone数据集是一个三维数组,记录了24×24个空间网格内,从月,共72个时间点上,

洲每月的平均臭氧水平。前两维分别表示纬度和经度,第三维表示时间。年月到年DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone研究位置(1,1)在不同时点臭氧水平的变化。方法一:按照所有时间点画出折线图value

<-

ozone[1,

1,

]time

<-

1:72

/

12plot(c(1:72),value,main=NULL,xlab="time",ylab="value",type="l")box(bty="l")grid(nx=NA,ny=NULL,lty=1,lwd=1,col="gray")DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone方法二:对不同年份按时点画出折线图plot(value[1:12],type="b",pch=19,lwd=2,xaxt="n",col="black",xlab="month",ylab="value")axis(1,at=1:12,labels=c("Jan",

"Feb",

"Mar",

"Apr",

"May","Jun",

"Jul",

"Aug",

"Sep",

"Oct",

"Nov",

"Dec"))lines(value[13:24],col="red",type="b",pch=19,lwd=2)lines(value[25:36],col="orange",type="b",pch=19,lwd=2)lines(value[37:48],col="purple",type="b",pch=19,lwd=2)lines(value[49:60],col="blue",type="b",pch=19,lwd=2)lines(value[61:72],col="green",type="b",pch=19,lwd=2)legend("bottomright",legend=c("1995","1996","1997","1998","1999","2000"),lty=1,lwd=2,pch=rep(19,6),col=c("black","red","orange","purple","blue","green"),ncol=1,bty="n",cex=1.2,text.col=c("black","red","orange","purple","blue","green"),inset=0.01)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:OzoneDATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone对位置(1,1),以月份为自变量,做一个稳健线性回归month.abbr

<-

c("Jan",

"Feb",

"Mar",

"Apr",

"May","Jun",

"Jul",

"Aug",

"Sep",

"Oct",

"Nov",

"Dec")month

<-

factor(rep(month.abbr,

length

=

72),

levels

=

month.abbr)year

<-

rep(1:6,

each

=

12)library("MASS")deseas1

<-

rlm(value

~

month

-

1)summary(deseas1)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone画出残差图DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone观察稳健回归模型的系数coef(deseas1)稳健回归方程DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone对所有24×24=576个位置做稳健线性回归deseasf

<-

function(value)

rlm(value

~

month

-

1,

maxit

=

50)models

<-

alply(ozone,

1:2,

deseasf)用failed

无法实现稳健线性回归的位置failed

<-

laply(models,

function(x)

!x$converged)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone提取所有模型的系数和残差coefs

<-

laply(models,

coef)dimnames(coefs)[[3]]

<-

month.abbrnames(dimnames(coefs))[3]

<-

"month"deseas

<-

laply(models,

resid)dimnames(deseas)[[3]]

<-1:72names(dimnames(deseas))[3]

<-"time"coefs是一个三维数组,记录了所有24×24个位置中每个位置的12个系数>dim(coefs)[1]

24

24

12deseas是一个三维数组,记录了所有24×24个位置中每个位置的72个残差dim(deseas)[1]

24

24

72DATAGURU专业数据分析社区R七种之数据plyr讲师案例:OzoneDATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozonecoefs_df

<-

melt(coefs)head(coefs_df)coefs_df

<-

ddply(coefs_df,

.(lat,

long),

transform,

avg

=

mean(value),std

=

value/max(value))head(coefs_df)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozonedeseas_df

<-

mehead(deseas_df)eseas)DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozonecoef_limits

<-

range(coefs_df$value)coef_mid

<-

mean(coefs_df$value)monthsurface

<-

function(mon){df

<-

subset(coefs_df,

month

==mon)qplot(long,

lat,

data

=

df,

fill

=

value,

geom="tile")

+scale_fill_gradient(limits

=

coef_limits,low

=

"lightskyblue",

high

=

"yellow")}DATAGURU专业数据分析社区R七种之数据plyr讲师案例:Ozone以下两幅图分别展现了1月与7月的区域差异。months

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论