推 VIATOR: 其實我對於易讀性這點很懷疑 04/11 07:59
→ VIATOR: 大部分人都能夠很快 看懂 for迴圈 04/11 08:00
→ VIATOR: 可是對於apply語法不懂的人很難看懂apply 04/11 08:01
→ locka: 看不懂apply那可以從sapply開始學(認真誤) 我以前也覺得要 04/11 08:32
→ locka: 指定row或column參數的apply很難看懂;相較之下sapply親切 04/11 08:32
→ locka: 多了,傳進去的就是迭代進FUN的參數,跟for是一樣的概念, 04/11 08:32
→ locka: 還更有彈性。看得懂for就看的懂sapply(應該吧XD) 04/11 08:32
推 VIATOR: *apply各種變形各有些微不同,之後可能還要用do.call,rbind 04/11 23:57
→ VIATOR: 而且如果想用平行運算,可能還要改回foreach 04/11 23:59
推 VIATOR: 我雖然會用*apply了,但常常懷疑*apply的好處 04/12 00:02
→ VIATOR: preallocate 大概是我目前唯一覺得的好處 04/12 00:04
→ VIATOR: 但懂得自己preallocate 的話,其實for迴圈也沒什麼不好 04/12 00:05
→ celestialgod: 基本上我同意apply系列沒什麼好處 這也算是R特 04/12 14:02
→ celestialgod: 殊的撰寫風格,大多數人稱這種寫法是functional pro 04/12 14:02
→ celestialgod: gramming,來避免一些太複雜的程式計算,至於好處壞 04/12 14:02
→ celestialgod: 處就是各有利弊,每個人看法不同 04/12 14:02
推 celestialgod: 至於平行的話,parallel::parLapply也都可以做,並 04/12 14:03
推 celestialgod: 不是只有foreach能用 04/12 14:03
推 VIATOR: apply系列,MATLAB有類似的寫法,不過不常看到人用 04/12 14:36
→ VIATOR: parLapply能處理lapply,但windows就沒有辦法平行mcapply 04/12 14:39
→ celestialgod: MATLAB的cellfun跟arrayfun 我的愛XDD 04/12 19:50
→ celestialgod: 我用matlab幾乎都用那個處理資料= = 04/12 19:50
→ celestialgod: matlab雖然有JIT,但是preallocation還是比較快 04/12 19:51