作者ming790925 (MING)
看板R_Language
标题[问题] make_function vs function
时间Mon Feb 8 13:38:24 2016
- 问题: 当你想要问问题时,请使用这个类别
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1454909912.A.AC7.html
1F:→ celestialgod: 只是让你能够用函数形式去创function 02/08 16:24
2F:→ celestialgod: 打开看其实就是包eval 02/08 16:24
3F:→ celestialgod: eval(call("function", args, body), env) 02/08 16:24
4F:→ ming790925: 不好意思 可以再说详细一点吗 没有很懂 感谢! 02/09 14:42