首页 > 解决方案 > 交叉表R中的几列

问题描述

假设我有一个如下所示的数据框。也就是说,每个人都有多个诊断(dx)。

person dx1  dx2 dx3 dx4
A  Y  Y  N  N  
B  N  N  Y  Y 
C  Y  Y  N  Y
...

现在,对于上述每个 dx,我如何生成如下表格,以输出每个可能的 dx 组合的计数。以下计数是出于演示目的。例如,对于第一行记录,这意味着 2 个人拥有 dx1(但没有其他),1 个人同时拥有 dx1 和 dx2。

N    dx1 dx2 dx3 dx4
dx1   2   1   0   0
dx2   0   1   1   0
dx3   1   2   1   1
dx4   0   0   1   0

非常感谢您的帮助!

最好的问候,杰

标签: r

解决方案


也许你可以试试crossprod

> crossprod(df[-1]=="Y")
    dx1 dx2 dx3 dx4
dx1   2   2   0   1
dx2   2   2   0   1
dx3   0   0   1   1
dx4   1   1   1   2

推荐阅读