1
我在R(1.2M記錄)中有一個大的數據集。這些是針對不同協議的一些讀數。現在,我想分類這些數據(我可以使用rpart/RWeka進行分類)。但是,我首先需要處理這些數據,而這個問題恰恰與此有關。如何處理與大數據集中的特定條件匹配的數據R
數據集由4組不同協議的每對控制參數組成的輸出(吞吐量,響應時間)組成。現在,我想「裝箱」這些值,並且對於每組控制參數,只選擇那些處於最大吞吐量(對於那組輸入參數)的10%中的協議,以及最小響應時間的10%中的那些協議。
我知道我可以使用聚合來查找另一個data.frame中的最大吞吐量,最小響應時間,然後將其與原始data.frame結合起來。然後,我可以使用ifelse來查找符合標準的協議名稱。然而,在我看來,這樣做效率低下,我不知道如何在一列中編碼多個匹配(每組輸入值)。
有什麼建議嗎?
例(REQS與代表輸入參數):
PROTO REQS REPS THR RT
A 8 8 10 1
B 8 8 9.5 2
C 8 8 7 1.1
A 16 8 10 4
B 16 8 5 1
C 16 8 1 0.5
A 8 16 8 1
B 8 16 10 1.09
C 8 16 9.5 1
應該產生這樣的:從plyr
包
REQS REPS THRGOOD RTGOOD BOTHGOOD
8 8 A,B A,C A
16 8 A C empty
8 16 B,C A,B,C B,C
我不知道ddply,整潔的事情,謝謝......不過,這件事運行這臺機器上會很慢,它仍在運行(到目前爲止3小時)。 –
這很慢,因爲我試圖變得聰明,用'.parallel = TRUE'運行它,使用'doSMP'和4個工作線程。由於這些工作人員使用額外的記憶,因爲沒有明天,系統會發生顛簸...... –
(關於您的第一條評論)我很擔心。如果你確實知道行的順序是正確的,那麼你可能會更好一些,在數據框中添加一個新的列是一個因子,並將行結合起來(即值1,1,1,2, 2,2,3,3,3,4,4,4,...)。我不知道ddply的內部結構,但這似乎是合理的。 –