2017-09-03 2 views
1

Je me demande s'il est possible de créer une agrégation et un résumé des valeurs sur OpenRefine de la même manière que sur python et R? Exemple:Est-il possible de faire un tableau récapitulatif sur openrefine?

Tableau des nominations médicales avec 300k enregistrements Id-patient | Âge | Id-rendez-vous | Le résultat de l'agrégation et de la synthèse par patient est: Id-patient | dernier âge | valeur moyenne

J'espère être assez clair, si cette fonction fonctionne sur Openrefine il serait d'une grande aide.

Répondre

2

La réponse est "oui mais" ... C'est possible, mais un peu compliqué. Prenons un exemple.

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 

Afin de faire des calculs globaux par patient, vous devez d'abord transformer chaque patient en record. Pour ce faire, déplacez la colonne "Id_patient" au début et utilisez "blank down" (L'identifiant doit être préalablement trié avec "Sort..." and "Reoder rows permanently"). Ensuite, vous pouvez effectuer des calculs sur toutes les valeurs de chaque enregistrement, considéré comme un tableau.

Tout cela sera plus clair avec un screencast:

enter image description here

Les formules utilisées dans la démo sont:

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']]) 

Comme vous pouvez le voir, vous pouvez faire beaucoup de choses avec Open Affiner, notamment à l'aide Pyhon/Jython. MAIS les calculs ne sont pas son but principal. Open Refine est conçu principalement pour explorer, nettoyer et enrichir les données. Ce n'est pas un tableur. Vous pouvez faire la même chose beaucoup plus facilement avec les tableaux croisés dynamiques dans Excel. Tout comme vous pouvez nettoyer certaines données désordonnées avec Excel, même si ce n'est pas le meilleur outil pour cela.

+1

Merci, ce sujet est très avancé et conceptuellement parler de cela dans openrefine perd un peu ses principaux objectifs. Merci pour le tutoriel du souper. Je suppose que ce sera très utile pour d'autres aussi. –