如何从 R 中的多个集合制作一个多重集合?

How to make a multiset from multiple sets in R?

我有多个集合,我想在 R 中构建它们的多重集合。有什么解决方案吗?比如我有3组:

set1 <- c(1,3,6)
set2 <- c(1,2,6,7,9)
set3 <- c(1,3,7)

我想要一个像

这样的多重集
multiset = {1:3,2:1,3:2,6:2,7:2,9:1}

其中 1:3 表示元素 1 重复 3 次。

下面是你想要的吗?

set1 <- c(1,3,6)
set2 <- c(1,2,6,7,9)
set3 <- c(1,3,7)

tb <- table(c(set1, set2, set3))
paste(names(tb), m[,1], collapse=",", sep=":")

编辑

在评论之后,输出应该是可操作的,可以很容易地把它放在一个矩阵中:

tb <- table(c(set1, set2, set3))

mat <- cbind(no=names(tb), freq=tb)

如果需要,将字符列转换为数字:

apply(mat, 2, as.numeric)
#>      no freq
#> [1,]  1    3
#> [2,]  2    1
#> [3,]  3    2
#> [4,]  6    2
#> [5,]  7    2
#> [6,]  9    1