r - 交叉表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
非常感谢您的帮助!
最好的问候,杰
解决方案
也许你可以试试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
推荐阅读
- javascript - 将前一行数据添加到动态生成的行中以存储数据
- regex - 如何获取字符串并添加到列表中?
- html - 如果 svg 隐藏在单独的类中,则隐藏 SVG LinearGradient
- python - 如何使用箭头键向下移动我的乌龟?
- ios - 安装任何新的 Cocoapod 都会导致构建失败
- javascript - 在不导入 polyfill 的情况下摆脱“regeneratorRuntime is not defined”
- java - AWS SDK v2 SdkAsyncHttpClient 实施使用 Java 11 java.net.http HttpClient sendAsync
- python-3.x - How to sort a pandas dataframe by the standard deviations of its columns?
- ios - 一次构建ios应用,发布到多个设备
- c++ - 如果调用了两个 get opts,我将如何停止程序