R语言总结
数据框操作(plyr包)
辅助小函数
1 splat函数:
作用:把原函数中多个参数打包为一个list作为参数,然后输出新的函数。也就是说本来某个函数需要输入多个参数,现在套上splat后,只要输入一个参数list就可以了,不需要单独地输入参数。它的作用结果是把一个函数变成一个新函数。
m*ply(a_matrix, FUN)的作用和a*ply(a_matrix,1,splat(FUN))一样
eg:
(1)参数使用
> hp_per_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
>ddply(mtcars,.(cyl),splat(f))
2 each函数
作用:把多个函数汇聚成一个函数,当使用这个函数时,将分别作用多个函数。它的作用结果是把一个函数变成一个新函数。
不足:不能给作用的函数指定附加参数,只能使用默认参数。
eg:
>fun
>fun(1:10)