[心得] sqldf效率問題

看板R_Language作者 (成立奧凶帝國!!)時間10年前 (2014/07/24 13:30), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
[關鍵字]:sqldf tapply [重點摘要]: 剛開始學R的時候對於R的指令很不熟,所以大部分都習慣用sqldf來寫查詢指令 但是隨著對R的熟悉,最近也在嘗試用R內建的fnction來查詢資料 所以才想說來比較一下兩者的效能差異 實驗的DATA很簡單(大至長這樣,實驗方法就是增加row的數量) Category FREQ T 0.2 T 0.3 T 0.4 F 0.5 F 0.6 F 0.7 目的是依照category來sum FREQ 原始碼 #產生DATASET x <- data.frame(Freq=runif(1000000,0,1),Category=c("T","F")) ##測試SQL ptm_sql <- proc.time() result<-sqldf("SELECT Category, sum(Freq) FROM x GROUP BY Category ") ptm_sql <- proc.time() - ptm_sql ptm_sql ##測試tapply ptm_tapply <- proc.time() result<-tapply(x$Freq, x$Category, FUN=sum) ptm_tapply <- proc.time() - ptm_tapply ptm_tapply 測試結果: 當rows = 10,000時 user system elapsed SQLDF 0.05 0.00 0.94 TAPPLY 0.00 0.00 0.34 -------------------------------- rows = 1,000,000: user system elapsed SQLDF 2.30 0.03 4.34 TAPPLY 0.32 0.00 0.40 -------------------------------- row = 100,000,000: user system elapsed SQLDF 288.77 31.00 505.11 TAPPLY 31.65 1.84 39.66 沒做實驗前還不知道,SQLDF的效能和TAPPLY有那麼大的差異 不過這個實驗沒有考量到多個表格join的狀況就是了 實驗環境: CPU intel i5 4200 RAM 8G -- (C)lass 【 分組討論區 】 11 卡漫夢工廠 卡通, 漫畫, 動畫 [Ckmike] 4 C_J_Artist 作家 Σ日本漫畫家專區 [Ckmike] 10 TakahasiShin 作家 ◎****高橋真作品討論版**** kenshin528 http://bryannotes.blogspot.tw/ 行銷研究與資料分析筆記 ※ 編輯: kenshin528 (42.71.64.120), 07/24/2014 13:31:15 ※ 編輯: kenshin528 (42.71.64.120), 07/24/2014 13:32:03
文章代碼(AID): #1Jq9eHeR (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1Jq9eHeR (R_Language)