Re: [问题] 如何在函数中产生函数?

楼主: Wush978 (拒看低质媒体)   2016-10-31 13:16:52
※ 引述《wheado (principal component QQ)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 假设有个函数 F <- function(data=iris ,unit=3){...}
: 我想要在里面产生另外一个函数 f <- function(X, par){...}。
: 但是,这个函数是跟我的 data 与 unit 有关,
: 会根据我给的data与unit不同产生的函数会不一样,
: 请问有没有关键字或是网站可以让我搜寻类似的教学。
: 这个问题我不知道要怎么GOOGLE。
: 谢谢。
关键字: function, environment, closure
参考网页:
- R advanced: http://adv-r.had.co.nz/Environments.html
- Closure in R:
https://www.r-bloggers.com/closures-in-r-a-useful-abstraction/
学会这些技巧,可以让写的程式码更短,但是同事若不懂,在共用R script
上可能会有问题。你要自行取舍了。
作者: f496328mm (为什么会流泪)   2016-10-31 17:30:00
看起来这好像比较偏底层的东西 像是内存存放变量第二个连结就是函数包函数 他没有给函数命名好神奇的写法
作者: celestialgod (天)   2016-10-31 17:47:00
第二个就只是 没有写return而已...就跟你用 f <- function(x) {1} 是一样的
楼主: Wush978 (拒看低质媒体)   2016-10-31 23:53:00
clusure 不是没return,而是回传一个产生的函数并且那个函数存取的变量被保护,可以达到原po想问的效果吧
作者: cywhale (cywhale)   2016-11-01 22:35:00
R这些巧妙写法都还没试过 推一个~
作者: wheado (principal component QQ)   2016-11-01 22:44:00
感谢大大赞叹大大小弟跪读一下

Links booklink

Contact Us: admin [ a t ] ucptt.com