计算一组二元变量的组合频率

Sas*_*ha 3 combinations r frequency

有没有办法计算一组二元变量的组合频率?

a <- c(0,1,0,1,0)
b <- c(1,1,0,1,0)
c <- c(0,1,0,0,0)

> data.frame(a, b, c)
  a b c
1 0 1 0
2 1 1 1
3 0 0 0
4 1 1 0
5 0 0 0

Run Code Online (Sandbox Code Playgroud)

在此示例中,组合 a + b 是最常见的,因为 obj. 2和4有这些。我只想计算至少 2 个包含 [1] 的变量的组合。有没有办法计算这个?我将不胜感激任何想法或想法!

我的预期输出应该是这样的:

combinations


1 ab  2
2 ac  1
3 bc  1
4 abc 1

Run Code Online (Sandbox Code Playgroud)

Geo*_*vva 6

尝试这个:

> X <- data.frame(a, b, c)
> apply(model.matrix(data=X, ~a*b*c), 2, sum)[-(1:4)]

 a:b   a:c   b:c a:b:c 
    2     1     1     1 
Run Code Online (Sandbox Code Playgroud)

model.matrix将对数据集中每行的所有交互进行编码,然后我使用 apply 对行求和。前四个元素是截距和主效应ab、 以及c您不需要的。