在 OpenRefine 中合并列 x 到 n

Combine column x to n in OpenRefine

我有一个列数未知的 table,我需要在某一点之后合并所有列。考虑以下因素:

| A  | B  | C | D | E |
|----|----|---|---|---|
| 24 | 25 | 7 |   |   |
| 12 | 3  | 4 |   |   |
| 5  | 5  | 5 | 5 |   |

A-C 列已知,其中的信息正确。但是 D 到 N 列(未知数量的以 D 开头的列)需要合并,因为它们都是同一个字符串的一部分。如何在 OpenRefine 中组合未知数量的列?

由于某些列可能有空单元格(字符串可能有不同的长度),我也需要忽略空单元格。

有一个适合您的两步法。

从您要合并的第一列(在本例中为 Col D)选择转置->将跨列的单元格转置为行

系统会要求您设置一些选项。您需要选择 'From Column' D 和 'To Column' N。然后选择转置为一列,为该列指定一个名称,确保选中 'Ignore Blank Cells' 选项(应该是默认选中。然后单击转置。

您将获得以前在列 D-N 中出现在行中的值。例如

| A  | B  | C | D | E | F |
|----|----|---|---|---|---|
| 1  | 2  | 3 | 4 | 5 | 6 |

转换为:

| A  | B  | C | new |
|----|----|---|-----|
| 1  | 2  | 3 | 4   |
|    |    |   | 5   |
|    |    |   | 6   |

然后您可以使用 'new' 列顶部的下拉菜单来选择 编辑单元格->加入多值单元格

系统会询问您要使用什么字符来分隔合并单元格中的字符。可能在您的用例中,您可以删除连接字符并组合没有任何连接字符的单元格。这会给你:

| A  | B  | C | new |
|----|----|---|-----|
| 1  | 2  | 3 | 456 |