2017-09-21 2 views
1

J'ai un ensemble de données comme ceci:Rejoignez seulement quelques cellules d'une colonne - openrefine

enter image description here

je dois joindre seulement les trois dernières colonnes (les auteurs) et la fonction rejoindre ne me aide . Je n'ai pas toujours 3 auteurs: ils peuvent être 2, ça peut être 1. Existe-t-il un moyen de ne rejoindre que les cellules qui ont des cellules vides dans la colonne proche?

Répondre

1

Une solution un peu plus simple est d'utiliser slice() pour sélectionner toutes les valeurs sur chaque enregistrement sauf le premier:

row.record.cells['Column name'].value.slice(1).join("|") 

enter image description here

+0

Je vais l'utiliser dans les futurs projets, merci. –

+1

De rien. Voici le doc de cette fonction: https://github.com/OpenRefine/OpenRefine/wiki/GREL-Array-Functions#slicearray-a-number-from-optional-number-to –

1

Eh bien, j'utilisé une solution de contournement:

  • premier ajouter une colonne avec row.record.cells.NameColumn.value.join("|")
  • puis dans la nouvelle colonne I éliminé le titre du livre faisant value.replace(/(^[^\|]+)\|(.+)$/, "$2")