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