作者Wush978 (拒看低質媒體)
看板R_Language
標題Re: [問題] 如何在函數中產生函數?
時間Mon Oct 31 13:16:52 2016
※ 引述《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
上可能會有問題。你要自行取捨了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.100
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1477891017.A.0D6.html
推 f496328mm: 看起來這好像比較偏底層的東西 像是記憶體存放變數 10/31 17:30
推 f496328mm: 第二個連結就是函數包函數 他沒有給函數命名 10/31 17:32
→ f496328mm: 好神奇的寫法 10/31 17:33
→ celestialgod: 第二個就只是 沒有寫return而已... 10/31 17:47
→ celestialgod: 就跟你用 f <- function(x) {1} 是一樣的 10/31 17:47
→ Wush978: clusure 不是沒return,而是回傳一個產生的函數 10/31 23:53
→ Wush978: 並且那個函數存取的變數被保護,可以達到原po想問的效果 10/31 23:54
→ Wush978: 吧 10/31 23:54
推 cywhale: R這些巧妙寫法都還沒試過 推一個~ 11/01 22:35
推 wheado: 感謝大大讚嘆大大小弟跪讀一下 11/01 22:44