itertools的效能

看到許多版友在問itertools的效能,讓我想跟大家分享一些關於程式效能的經驗。 一般來說,我們不會去優化所有的程式碼,因為優化有很大的代價:一般性與可讀性。 通常跑得快與寫的快,是要做取捨的。 這裡的例子很好想像,大家只要比較R的程式碼與Rcpp的程式碼就好了。 又由於程式的效能通常也符合80-20法則: 80%的時間是花在20%的程式碼 所以實務上,我不會從頭到尾都把程式用Rcpp來寫, 而是只抽出最花時間的那段程式碼,改成Rcpp。 以一個for loop來說: library(microbenchmark) library(itertools) ## Loading required »

itertools 簡介

最近在ptt R_Language版上看到許多跟迴圈有關的文章,所以一時興起想跟大家分享寫迴圈或apply等函數好用的套件:itertools library(itertools) ## Loading required package: iterators 講itertools之前,要先介紹iterator的概念:這是把迴圈的功能更精鍊出來的概念。 我們先看一個迴圈的範例: for(i in 1:3) { print(i) } ## [1] 1 ## [1] 2 »

Rcereal 投稿CRAN的心得

上週末,我又突然發神經投了一個CRAN的套件:Rcereal。這裡想跟各位分享整個投套件的過程,因為這個套件本身是非常簡單的。從我開始接觸cereal專案到投上Rcereal,大概只花了三天,所以整個過程就是很單純處理CRAN Submission的過程。 投稿動機 在Rcpp裡面有很豐富的功能,可以把C++物件輸出到R中做操作。有興趣踩雷的朋友,歡迎讀讀Rcpp-modules,並且開始踩雷之旅。這東西現在應該是充分可用了,所以你應該有很大的機會生還,扯遠了。但是這些C++物件是保存在記憶體中,而且也不是R 的原生物件,所以只要不小心把R 一重開,即使其他的R »

Feature Hashing

今天早上,我透過網路在第八届中国R语言会议(南昌)暨江西财经大学第一届金融大数据论坛上宣傳自己的套件FeatureHashing。 由於用中華電信連中國實在是不穩,所以我就預錄了影片請馮帥(原本都稱馮兄的,視頻過後真的要改口說馮帥了!這才是科學的態度阿,不人云亦云)。現場聽講的老師因為中途加入,還以為我是實際連線跟他們報告呢,哈哈。 事實上,我錄了兩個版本。第一個版本因為講解的太仔細了,結果超過時間的兩倍。我覺得刪除還是太可惜了,所以就上傳到Youtube上: 如果有朋友要在R 裡面處理大量的文字相關的資料,可以看看這個套件。如果想要知道相關技術的細節,以及想知道為什麼大數據的環境之下,Feature hashing »

`dplyr::group_by`的進階運用

大家好,今天想跟大家介紹一個使用dplyr時的一個小撇步。他可以讓我們在使用group_by之後,有更多的彈性,並會更理解group_by這好用功能的原理。 背景簡介 我由於工作上要研究網路廣告,常常要比較各種不同方法間的數據。舉例來說,我可能手上有一大筆看起來像這樣的資料: 廣告 網站 點擊 1 廣告D 網站C 0 2 廣告A 網站C 0 3 廣告A 網站C »