2017-09-03 9 views
1

Ich frage mich, ob es möglich ist, eine Zusammenfassung und Zusammenfassung von Werten auf OpenRefine auf die gleiche Weise wie bei Python und R zu erstellen? Beispiel:Ist es möglich, eine zusammenfassende Tabelle auf openrefine zu machen?

Medizinische Tabelle mit 300k Aufzeichnungen Id-Patient | Alter | Id-Termin | Wert

Das Ergebnis der Aggregation und Zusammenfassung nach Patienten wäre: Id-Patient | Letztes Alter | Mittelwert

Ich hoffe, klar genug zu sein, wenn diese Funktion auf Openrefine funktioniert, wäre es eine große Hilfe.

Antwort

2

Die Antwort ist "ja aber" ... Es ist möglich, aber ein bisschen kompliziert. Nehmen wir ein Beispiel.

Id-patient,Age,Id-appointment,score 
1,25,1-1,456 
1,26,2-1,895 
1,27,3-1,872 
1,28,4-1,12 
1,29,5-1,87 
2,45,1-2,542 
2,46,2-2,524 
2,52,3-2,78 
2,89,4-2,45 
2,90,5-2,371 

Um pro Patient Aggregat Berechnungen zu tun, müssen Sie zuerst jeden Patienten in eine record verwandeln. Verschieben Sie dazu die Spalte "Id_patient" an den Anfang und verwenden Sie "blank down" (Die ID muss vorher mit "Sort..." and "Reoder rows permanently" sortiert werden).

Danach können Sie Berechnungen für alle Werte jedes Datensatzes durchführen, der als Array betrachtet wird.

All dies wird mit einem Screen klarer sein:

enter image description here

Die in der Demo verwendeten Formeln sind:

GREL:

sort(row.record.cells.Age.value)[-1] 

GREL:

sum(row.record.cells.score.value)/length(row.record.cells.score.value) 

Python/Jython:

def avg(l): 
    return sum(l, 0.0)/len(l) 

return avg([x for x in row['record']['cells']['score']['value']]) 

Wie Sie sehen können, können Sie eine Menge Dinge mit offenen verfeinern tun, vor allem Pyhon/Jython verwenden. ABER Berechnungen sind nicht der Hauptzweck. Open Refine wurde entwickelt, um Daten zu erforschen, zu bereinigen und zu bereichern. Es ist keine Tabellenkalkulationssoftware. Sie könnten dasselbe viel einfacher mit Pivot-Tabellen in Excel tun. Genauso wie Sie mit Excel unordentliche Daten bereinigen können, auch wenn dies nicht das beste Werkzeug dafür ist.

+1

Danke, dieses Thema ist weit fortgeschritten und konzeptionell dies in Openrefine zu tun verliert ein wenig seine Hauptziele. Danke für das Abendessen-Tutorial. Ich denke, es wird auch für andere sehr nützlich sein. –

Verwandte Themen