小编Ali*_*ili的帖子

dplyr semi_join 错误:`x`和`y`必须共享相同的src,设置`copy` = TRUE(可能很慢)

我正在使用 dplyr 1.0.6 和 R 4.1.0,我编写了 2 个函数,如下所示:

AllCustomersList <- loadAllCustomersData()

CouldJoinByNationalID <- matchCustomersByNationalCode(AllCustomersList = AllCustomersList)
Run Code Online (Sandbox Code Playgroud)

loadAllCustomersData() 返回两个数据帧的列表,然后 matchCustomersByNationalCode 尝试在这两个 data.frame 上执行 semi_join,如下所示:

matchCustomersByNationalCode <- function(AllCustomersList) {
  
  FDCustomers <- AllCustomersList$FDCustomers
  Customers <- AllCustomersList$Customers
  
  semi_join(x = FDCustomers, y = Customers, by = c("NationalID" = "NationalCode"), na_matches = "never") %>% 
    pull(NationalID) %>% 
    return()
}
Run Code Online (Sandbox Code Playgroud)

实际上,这只是 semi_join 的包装,就命名而言。但它出现了一个错误:

错误:x并且y必须共享相同的src,set copy= TRUE(可能会很慢)。

运行rlang::last_error()看看哪里出错了。

调用自:signal_abort(cnd)

有人可以帮忙吗?

r semi-join dplyr

15
推荐指数
1
解决办法
3万
查看次数

标签 统计

dplyr ×1

r ×1

semi-join ×1