[問題] 如何更有效率的整理data的問題?
[問題類型]:
效能諮詢(我想讓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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章