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]
> splat(hp_per_cyl)(mtcars)
[1]
[10]
[19]
[28]
等价于:
> hp_per_cyl(mtcars$hp,mtcars$cyl)
splat函数的优点就是可以不用拆分字段,可以一起输入作为参数。
(2)与plyr函数合用:
> f<-function(mpg,wt,...) (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((x))
> colwise(nmissing)(baseball)
R语言总结 来自淘豆网m.daumloan.com转载请标明出处.