Re: [問題] 如何在函數中產生函數?

看板R_Language作者 (拒看低質媒體)時間7年前 (2016/10/31 13:16), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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

10/31 17:30, , 1F
看起來這好像比較偏底層的東西 像是記憶體存放變數
10/31 17:30, 1F

10/31 17:32, , 2F
第二個連結就是函數包函數 他沒有給函數命名
10/31 17:32, 2F

10/31 17:33, , 3F
好神奇的寫法
10/31 17:33, 3F

10/31 17:47, , 4F
第二個就只是 沒有寫return而已...
10/31 17:47, 4F

10/31 17:47, , 5F
就跟你用 f <- function(x) {1} 是一樣的
10/31 17:47, 5F

10/31 23:53, , 6F
clusure 不是沒return,而是回傳一個產生的函數
10/31 23:53, 6F

10/31 23:54, , 7F
並且那個函數存取的變數被保護,可以達到原po想問的效果
10/31 23:54, 7F

10/31 23:54, , 8F
10/31 23:54, 8F

11/01 22:35, , 9F
R這些巧妙寫法都還沒試過 推一個~
11/01 22:35, 9F

11/01 22:44, , 10F
感謝大大讚嘆大大小弟跪讀一下
11/01 22:44, 10F
文章代碼(AID): #1O5jF93M (R_Language)
文章代碼(AID): #1O5jF93M (R_Language)