[問題] make_function vs function

看板R_Language作者 (MING)時間9年前 (2016/02/08 13:38), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
- 問題: 當你想要問問題時,請使用這個類別 [問題類型]: 程式諮詢(我想用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) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.135 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1454909912.A.AC7.html

02/08 16:24, , 1F
只是讓你能夠用函數形式去創function
02/08 16:24, 1F

02/08 16:24, , 2F
打開看其實就是包eval
02/08 16:24, 2F

02/08 16:24, , 3F
eval(call("function", args, body), env)
02/08 16:24, 3F

02/09 14:42, , 4F
不好意思 可以再說詳細一點嗎 沒有很懂 感謝!
02/09 14:42, 4F
文章代碼(AID): #1Mk2dOh7 (R_Language)
文章代碼(AID): #1Mk2dOh7 (R_Language)