我有一组看起来像这样的数据:

df <- data.frame(typeA = c(T,T,F,F,T,F,T,F), typeB = c(T,F,T,F,T,F,T,F), typeC = c(F,F,F,F,T,T,T,T))

我想输出一个看起来像
|       | TypeA | TypeB | TypeC |
|-------|-------|-------|-------|
| TypeA | 4     | 3     | 2     |
| TypeB | 3     | 4     | 2     |
| TypeC | 2     | 2     | 4     |

其中每个单元格是具有第TRUE行和第TRUE列的观测值的数量。

例如:第一行第二列显示有3个ob,TypeA == T && TypeB ==T。

另外,该表摘要的名称是什么?

最佳答案

sapply(df, function(x) sapply(df, function(y) sum(x * y)))
#OR
t(df) %*% as.matrix(df)
#      typeA typeB typeC
#typeA     4     3     2
#typeB     3     4     2
#typeC     2     2     4

08-25 05:34