2016-04-26 81 views
0

我期待讀取包含10行數千行的原始數據輸出.csv文件。這些行大部分沒有填充有意義的數據,但每過一段時間,N(通常是5左右)行的集羣就會顯示出來,其中包含有意義的數據。我想篩選行,當我遇到這些羣集時,將羣集的最大值寫入一個文件,該文件會不斷用這些最大值進行更新。在R中,篩選N個連續行數據的數據幀(一個「窗口」),然後執行一個功能

下面是數據的一個例子:

screen cap

第二列是我很感興趣的

+3

獲得幫助的最佳方法是在此處發佈小型可重複使用的示例,而不是鏈接到外部網站。它有助於顯示樣本輸入,預期輸出和任何其他代碼。 – Gopala

+0

謝謝! 示例輸入是一個巨大的.csv文件;你知道markdown語法是用於粘貼兩列數據的片段嗎?如果你可以提供幫助,我會很樂意添加它,以及預期或期望的輸出。 – rSchwab

回答

0

rle功能可掃描矢量並獲得序列的長度。揮手的答案是掃描與rle(vector>0)$lengths is > 5相關聯的rle(vector>0)$values的序列。

我們不能用對象查看器的圖片做很多事情。因此,要給出一個測試,代碼答案我們需要代碼生成可以粘貼到控制檯會話中的數據。在這種情況下,你可能是什麼序列的年齡非零值查找我假設的數據框的一部分被命名爲dfrm,看起來很有趣,併發布dput(dfrm[ rownames(dfrm) %in% i:j , ])的輸出,其中我和j是rownames上面的幾行和belwo感興趣的領域。然後,我們可以向您展示如何使用rlecumsumseq爲感興趣的行構建選擇向量。

+0

謝謝,我將通過學習rle函數來做一些工作。但是,我從第三方軟件的原始輸出文件開始,它提供了要轉換爲數據幀的原始數據。沒有代碼存在;我主要是尋找一些起點來開始編碼,然後我會發布代碼。 – rSchwab

+0

我假設你不需要幫助將數據文件讀入R,而是從'read.csv'處理數據幀,並將其命名爲'dfrm'。 'dput(dfrm [n:(n + 30),c(c1,c2)])'的後輸出,其中n是序列開始之前的rownumber,c1和c2是感興趣的列數(或名稱) 。 –

+0

我認爲另一種說法是創建峯值檢測算法來分析大型數據集。 – rSchwab

相關問題