2016-04-26 6 views
0

Ich bin auf der Suche nach einer Rohdatenausgabe .csv-Datei mit 10 von Tausenden von Zeilen. Die Zeilen sind meist nicht mit aussagekräftigen Daten gefüllt, aber ab und zu wird ein Cluster von N (normalerweise 5 oder so) Zeilen angezeigt, der die aussagekräftigen Daten enthält. Ich möchte die Zeilen durchsuchen, und wenn ich auf diese Cluster stoße, schreibe das Maximum des Clusters in eine Datei, die ständig mit diesen Maxima aktualisiert wird.In R, Sift durch einen Datenrahmen für N aufeinander folgende Zeilen von Daten (ein "Fenster"), dann eine Funktion

Hier ist ein Beispiel der Daten:

screen cap

Die zweite Säule ist das, was mich interessiert

+3

Der beste Weg, um Hilfe zu erhalten, ist hier kleine, reproduzierbare Beispiel in Zeile, und keine Verknüpfung zu externen Seiten. Es hilft, Beispieleingabe, erwartete Ausgabe und irgendeinen anderen Code zu zeigen. – Gopala

+0

Danke! Die Beispieleingabe ist eine massive CSV-Datei. Weißt du, was die Markdown-Syntax für das Einfügen in einen Ausschnitt der Daten für zwei Spalten ist? Wenn Sie dabei helfen können, werde ich es gerne hinzufügen, ebenso wie die erwartete oder gewünschte Ausgabe. – rSchwab

Antwort

0

Die rle Funktion können Sie einen Vektor scannen und Längen von Sequenzen erhalten.. Die Hand-waving-Antwort besteht darin, nach Sequenzen von rle(vector>0)$values zu suchen, die mit rle(vector>0)$lengths is > 5 verknüpft sind.

Mit Bildern von Objektbetrachtern können wir nicht viel anfangen. Um also eine getestete, Code-enthaltende Antwort zu geben, benötigen wir codierte Daten, die in eine Konsolensitzung eingefügt werden können. In diesem Fall hast du wahrscheinlich welche Folgen von Werten, die nicht-Null-AlterFind einen Abschnitt Ihres Datenrahmens, den ich nehme, dfrm, der für Sie interessant erscheint und posten die Ausgabe von dput(dfrm[ rownames(dfrm) %in% i:j , ]) wo ich und j sind mehrere Zeilen oben und links Interessenbereich. Wir können Ihnen dann zeigen, wie Sie rle und cumsum und seq verwenden, um einen Auswahlvektor für die Zeilen von Interesse zu erstellen.

+0

Danke, ich werde etwas Arbeit mit dem Lernen der RLE-Funktion tun. Ich beginne aber bei Null mit der rohen Ausgabedatei von Software von Drittanbietern, die die Rohdaten bereitstellt, die in einen Datenrahmen konvertiert werden sollen. Es existiert noch kein Code. Ich suche meistens nach einem Startpunkt, um mit dem Programmieren zu beginnen, nach dem ich den Code veröffentlichen werde. – rSchwab

+0

Ich gehe davon aus, dass Sie keine Hilfe brauchen, um die Datendatei in R zu lesen, sondern den Datenrahmen von 'read.csv' zu verarbeiten, und Sie haben ihn' dfrm' genannt. Post-Ausgabe von 'dput (dfrm [n: (n + 30), c (c1, c2)])' wobei n eine Zeilennummer vor dem Beginn einer Sequenz ist und c1 und c2 die interessierenden Spaltennummern (oder Namen) sind . –

+0

Ich denke, ein anderer Weg, um es zu setzen wäre eine Anfrage bei der Erstellung eines Peak-Erkennungsalgorithmus, um einen großen Datensatz zu analysieren. – rSchwab

Verwandte Themen