[問題] make_function vs function

作者: ming790925 (MING)   2016-02-08 13:38:24
- 問題: 當你想要問問題時,請使用這個類別
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
大家好 pryr package 裡面有一個函數 make_function
我想請教各位高手 他與一般我們使用的 y=function(x){ } 這主要有什麼差異呢?
想知道該如何在適當時機用對指令
感謝!!
[程式範例]:
3.2 通过参数创建函数make_function()
通过使用make_function()函数,可以通过make_function()函数的3个参数,来创建一个普通的函数,从而现实动态性。
make_function()函数的3个参数分别是:
生成函数的参数部分, list类型
生成函数的表达式部分, 语法表达式, call类型
生成函数的系统环境部分, environment类型
# 创建标准的函数
> f <- function(x) x + 3
> f
function(x) x + 3
# 运行函数
> f(12)
[1] 15
# 通过参数创建函数
> g <- make_function(alist(x = ), quote(x + 3))
> g
function (x)
x + 3
# 运行函数
> g(12)
[1] 15
(資料來源:http://blog.fens.me/r-pryr/)
[環境敘述]:
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
作者: celestialgod (天)   2016-02-08 16:24:00
只是讓你能夠用函數形式去創function打開看其實就是包evaleval(call("function", args, body), env)
作者: ming790925 (MING)   2016-02-09 14:42:00
不好意思 可以再說詳細一點嗎 沒有很懂 感謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com