[問題] 如何更有效率的整理data的問題?

看板R_Language作者 (5566)時間8年前 (2017/01/31 04:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
[問題類型]: 效能諮詢(我想讓R 跑更快) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: 小弟自己產生一組data叫做"T"的矩陣, 想把其中"T"的第5行(T[,5])和第6行(T[,6])的數據, 挑出來整理成一個120X3的矩陣,假設叫"G", T[,5]的數值有10,16,22,28,34,40,6個可能, T[,6]的數值有0.5,1.5,2.5,.........,19.5和inf的可能, 整理方法: G的第一行(G[,1]):放0.5,1.5,....,19.5(20個數,6個循環,共120個) G的第二行(G[,2]):放的東西比較麻煩,即 T[,5]=10的情況下,對應到T[,6]那些0.5,1.5,.....,19.5,inf的數值 計算他們的累積比率,假設T[,5]=10,有100筆data, T[,5]=10且T[,6]<=0.5(或者T[,6]<=1)有22筆, 則它算出的累積比率為22/100=0.22,依此類推..., 算到T[,5]=10且T[,6]<=19.5(或者T[,6]<=20)的累積比率 共20個數字放到G[1:20,2],重複以上模式處理T[,5]=16,22,28,34,40的情形 分別放到G[21:40,2],G[61:80,2],.....,G[101:120,2] G的第三行(G[,3]):G[1:20,3]放10,G[21:40,3]放16,......G[101:120,3]放40 ________________________________________________________________________ 小弟之前是用table函數處理, 直接table(T[,5],T[,6])得到分類結果 再分別計算累積比率,沒用到廻圈, 但考慮到"假設T[,6]可能沒有出現5.5的情況", table函數分類後就不會有5.5的這個分類, 所以小弟又重新寫,用兩個廻圈來整理data, 第一個廻圈是在處理G[,1]和G[,3],第二個廻圈在處理G[,2] 以下附上code範例, 想請教版上各位高手,大大有沒有更漂亮,快速的處理方法, 指教了,謝謝~ [程式範例]: http://pastebin.com/bw0C2YNJ [環境敘述]: R x64 3.3.1 [關鍵字]: data整理 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.18.96 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1485807341.A.A33.html
文章代碼(AID): #1OZvxjep (R_Language)
文章代碼(AID): #1OZvxjep (R_Language)