使用bind_rows时出错,其中一个数据框具有类型为<hash>

问题描述 投票:0回答:1

我想绑定来自两个不同数据帧的行,其中一个数据帧包含一列哈希值,而第二个数据帧不包含该列。

library(tidyverse)
library(openssl)

df <- data.frame(x = sha3(letters[1:3], size = 512),
                 y = 1:3)

df2 <- data.frame(y = 4:6)

df |>
  bind_rows(df2)

尝试绑定行时,出现以下错误:

Error in `bind_rows()`:
! Can't combine `..1` <hash> and `..2` <vctrs:::common_class_fallback>.
Run `rlang::last_trace()` to see where the error occurred.

我以某种方式得到了它的来源,因为第二个数据帧不包含 x 列。但是,我预期/期望的输出是,bind_rows 仍然可以工作,只需用

NA
df2
填充 x 列即可。

编辑:

我通过简单地将哈希列从 df 转换回字符创建了一个小解决方法,但我仍然很好奇是否可以首先防止错误。

r dplyr hash
1个回答
0
投票

我建议使用

rbind.fill
:

plyr::rbind.fill(df, df2)
© www.soinside.com 2019 - 2024. All rights reserved.