Re: [問題] 處理資料 效能詢問

看板R_Language作者 (spiderway)時間9年前 (2016/07/07 23:17), 9年前編輯推噓1(104)
留言5則, 2人參與, 最新討論串4/5 (看更多)
※ 引述《spiderway (spiderway)》之銘言: : - 問題: 當你想要問問題時,請使用這個類別 : [問題類型]: : 效能諮詢(我想讓R 跑更快) : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : [問題敘述]: : 大家好, : 最近因為需要要處理一些資料,雖然有寫出要的東西,但是實在是跑太慢了,感覺要跑個 : 幾年= =,一定是我寫法不好,想來這問一下各位大大該怎個改才對,並學習一下 : 麻煩各位大大給予小魯指導,感激不盡!!! : 程式: : 讀取了全部CSV(10萬多個)存在一個大大的list裡面,要做的大概是把每一個list裡面的 : 資料都做同一件事,就是每5筆整理成1筆,然後append在一起,如下 : 1 2 3 4 5 6 1 2 3 .... : 1 6/1 a b 12 1 2 1 6/1 a b 12 1 2 13 1 3 14 1 4 15 1 5 16 1 6 : 2 6/1 a b 13 1 3 : 3 6/1 a b 14 1 4 變成1筆>>> : 4 6/1 a b 15 1 5 : 5 6/1 a b 16 1 6 : [程式範例]: : http://pastie.org/10898589 : [版本] : R version 3.3.0 (2016-05-03) : Platform: x86_64-pc-linux-gnu (64-bit) : Running under: Ubuntu 14.04.4 LTS : [關鍵字]: 解說一下我的資料型態 CSV檔10萬個,每一個大概有2000~3000多列不等,但一定是5個倍數 但是他的資料都是5列一組,所以我才會希望第一篇說得讓他5個整理成一列 前面會有V1~V3分別是 時間和AB兩個屬性,前五筆都是一樣的,V4~V6是我要處理的。 我上次是選C板大的教學使用,但是因為之前都不常用過dply那些,不太會用 用到csv_append之後是沒問題,但是在data那邊是個list我想要的是一個值 一行,所以最後的資料希望是像這樣,最後存成一個csv,因為我之後還要在處理一個類 似的資料,只有後面不一樣,再合併在一起。 V1 V2 V3 V4 ... V18 時間1 A1 B1 (整理的那5 rows合併的)1 時間2 A2 B2 (整理的那5 rows合併的)2 . . . 我現在面臨的問題, 1,do.call(rbind,csv_append)大概下午跑到隔天早上,但至少跑好了XD 2,data那邊是list我不太理解是不是能夠直接轉 2,我後來有想到辦法,我發現我都只會這種處理方法... http://pastie.org/10901154 是可以把每一個都轉成我要的之後在做do.call rbind 在請大大幫忙了 謝謝~~~~~~ 心得:謝謝各位大大的幫忙,雖然我很多function都看不太懂= = 而且發現好像apply系列很好用欸,之前都一直覺得用for就好了,真的遇到資料量變大差 別真多...,之後應該好好找時間重讀一下apply系列和dply那些 -- Sent from my ibon. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.200.30 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1467904670.A.493.html ※ 編輯: spiderway (122.116.200.30), 07/07/2016 23:20:19 ※ 編輯: spiderway (122.116.200.30), 07/07/2016 23:22:46 ※ 編輯: spiderway (122.116.200.30), 07/07/2016 23:24:21

07/08 03:52, , 1F
那就照我的做
07/08 03:52, 1F

07/08 03:53, , 2F
07/08 03:53, 2F

07/08 03:54, , 3F
你誤會了我說的兩點 rbind_all 跟loop方向, 不是動態變數
07/08 03:54, 3F

07/08 04:15, , 4F
直接把資料全疊起來,再用tidyr::spread
07/08 04:15, 4F

07/08 04:16, , 5F
疊起來直接用cat就好,讀大的csv用data.table
07/08 04:16, 5F
文章代碼(AID): #1NVdAUIJ (R_Language)
文章代碼(AID): #1NVdAUIJ (R_Language)