gpt4 book ai didi

r - 如何使用 data.table 执行 "setdiff"合并?

转载 作者:行者123 更新时间:2023-12-04 10:24:17 24 4
gpt4 key购买 nike

假设我有两个表:

library(data.table)
set.seed(1)

tab1 <- data.table(
let = rep(letters[1:2], each = 3),
num = rep(1:3, 2),
val = rnorm(6),
key = c("let", "num")
)

tab2 <- data.table(
let = rep(letters[1:2], each = 2),
num = rep(1:2, 2),
val = rnorm(4),
key = c("let", "num")
)

表格1:
> tab1
let num val
1: a 1 -0.6264538
2: a 2 0.1836433
3: a 3 -0.8356286
4: b 1 1.5952808
5: b 2 0.3295078
6: b 3 -0.8204684

表 2:
> tab2
let num
1: a 1
2: a 2
3: b 1
4: b 2

有没有办法“合并”这些表,以便我在 tab1 中获得所有结果不在 tab2 中的?:
   let num        val
1: a 3 -0.8356286
2: b 3 -0.8204684

最佳答案

在这种情况下,它相当于一个反连接:

tab1[!tab2, on=c("let", "num")]

但是 setdiff()将只为每个 let,num 的第一行.这是为 v1.9.8 标记的, FR #547 .

关于r - 如何使用 data.table 执行 "setdiff"合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com