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)