我试图按群组找到所有可能的组合。我尝试使用combn函数和data.table包作为下面的帖子[[这里是链接]](Generate All ID Pairs, by group with data.table in R
这给了我预期的结果。
dat1 <- data.table(ids=1:4, groups=c("B","A","B","A"))
dat1
ids groups
1: 1 B
2: 2 A
3: 3 B
4: 4 A
dat1[, as.data.table(t(combn(ids, 2))), .(groups)]
groups V1 V2
1: B 1 3
2: A 2 4
但这给了我一个奇怪的结果。这很奇怪。我试着理解这个结果大约3个小时,但我做不到。这不是一个bug吗?
dat2 <- data.table(ids=1:4, groups=c("B","A","B","C"))
dat2
ids groups
1: 1 B
2: 2 A
3: 3 B
4: 4 C
dat2[, as.data.table(t(combn(ids, 2))), .( groups)]
groups V1 V2
1: B 1 3
2: A 1 2
3: C 1 2
4: C 1 3
5: C 1 4
6: C 2 3
7: C 2 4
8: C 3 4
我非常感谢你的教学。