我有一组看起来像这样的数据:
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