R语言总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R语言总结

数据框操作(plyr包)

辅助小函数

1 splat函数:

作用:把原函数中多个参数打包为一个list作为参数,然后输出新的函数。也就是说本来某个函数需要输入多个参数,现在套上splat后,只要输入一个参数list就可以了,不需要单独地输入参数。它的作用结果是把一个函数变成一个新函数。

m*ply(a_matrix, FUN)的作用和a*ply(a_matrix,1,splat(FUN))一样

eg:

(1)参数使用

> hp_per_cyl<-function(hp,cyl,...) hp/cyl

> splat(hp_per_cyl)(mtcars[1,])

1] 18.33333

>splat(hp_per_cyl)(mtcars)

[1] 18.33333 18.33333 23.25000 18.33333 21.87500 17.50000 30.62

500 15.50000 23.75000

[10] 20.50000 20.50000 22.50000 22.50000 22.50000 25.62500 26.87

500 28.75000 16.50000

[19] 13.00000 16.25000 24.25000 18.75000 18.75000 30.62500 21.87

500 16.50000 22.75000

[28] 28.25000 33.00000 29.16667 41.87500 27.25000

等价于:

>hp_per_cyl(mtcars$hp,mtcars$cyl)

splat函数的优点就是可以不用拆分字段,可以一起输入作为参数。

(2)与plyr函数合用:

>f<-function(mpg,wt,...) data.frame(mw=mpg/wt)

>ddply(mtcars,.(cyl),splat(f))

2 each函数

作用:把多个函数汇聚成一个函数,当使用这个函数时,将分别作用多个函数。它的作用结果是把一个函数变成一个新函数。

不足:不能给作用的函数指定附加参数,只能使用默认参数。

eg:

>fun<-function(x) c(min=min(x),max=max(x),mean=mean(x))

>fun(1:10)

等价于

>f<-each(min,max,mean)

>f(1:10)

3 colwise函数

colwise(.fun,.cols,...)

说明:.fun:要转化的函数;.cols是测试数据框的列是否应包含的判别函数或者是·要包含的列的名称。

catcolwise(.fun,...)与colwise功能类似,只是对离散型变量有效numcolwise(.fun,...)与colwise功能类似,只是对数值型变量有效

作用:把作用于数据框行向量的函数(如mean,median等)转化为作用于数据框列向量的函数。于plyr函数一起使用十分方便。作用结果生成一个新的函数。

eg:

>nmissing<-function(x) sum(is.na(x))

>colwise(nmissing)(baseball)

>colwise(nmissing,.(sb,cs,so))(baseball)

>ddply(baseball,.(year),colwise(nmissing,.(sb,cs,so)))

>numcolwise(nmissing)(baseball)

等价于:colwise(nmissing,is.numeric)(baseball)

>catcolwise(nmissing)(baseball)

等价于:colwise(nmissing,is.discrete)(baseball)

4 failwith函数

failwith(default=NULL, f, quiet=FALSE)

作用:修正一个函数,使得当该函数出现错误时返回一个设定的默认值,默认为空。作用结果生成一个新的函数。

>f<-function(x) if (x==1) stop("Error") else 1

>f(1)

Error in f(1) : Error

>safef<-failwith(,f)

>safef(1)

Error in f(...) : Error

NULL

>safef<-failwith(12,f,quiet=TRUE)

>safef(1)

[1] 12

5 summarise()函数

summarise(.data, ...)

作用:对数据框做统计汇总,…为设定的统计方法或函数

Eg:

> summarise(baseball,duration=max(year)-min(year),nteams=length (unique(team)))

duration nteams

1 136 132

> head(ddply(baseball,"id",summarise,duration=max(year)-min(yea r),nteams=length(unique(team))))

id duration nteams

1 aaronha01 2

2 3

2 abernte02 17 7

3 adairje01 12 4

4 adamsba01 20 2

5 adamsbo03 13 4

6 adcocjo01 16 5

数据集变量操作

1 变量排序:arrange函数

arrange(df, .(var1), .(var2)…)

作用:按照指定列排序。

注意:使用arrange函数排完序后行名会丢失,需要用cbind补回。

Eg:

>arrange(mtcars,cyl,disp)

>cars<-cbind(vehicle=s(mtcars),mtcars)

>arrange(cars,cyl,disp)

------先把行名作为一个新的列加到数据框再排序

2 更改变量名

rename(x, replace, warn_missing=TRUE)

相关文档
最新文档