【发布时间】:2014-03-05 01:49:02
【问题描述】:
我有几个数据框,我需要将它们合并到一个数据框中以将它们全部统治。主数据框最终将包含数千列。所有数据框都有一个要加入的 ID 列。一个问题是数百列在数据帧中重复。另一个问题是这些列中的少数包含不一致的值。我想找到一种方法来
- 合并所有数据框,如果列名重复且数据框之间的值不冲突,则仅保留 1 个“主列”数据
- 如果两列数据名称相同,但它们的值有冲突,则保留这两列数据。
是否有任何软件包可以帮助实现这一点?还是我会被困在编写大量代码/手动检查数据?
【问题讨论】:
-
它们是否都具有相同的行数和相同的 ID?
-
@flodel 每个数据框中的行数不同。 ID 在数据帧中是准确的,但并非所有 ID 都会在每个数据帧中找到。我们确实有一个包含所有 ID 的数据框——因此我们可能会将所有数据框连接到该数据框。我们将在一个或多个数据帧中找不到 ID 中的相当数量的 NA 值,但这对于分析来说是可以的。
-
您能否将数据重塑为“更长”的格式?即,通过创建因子列来减少列数?数千列通常不是存储数据的首选方式。这可能与此处相关:vita.had.co.nz/papers/tidy-data.pdf。您的第二个要求可能会降低此操作的效率。您可能需要修改
merge.data.frame。