创建一个表,其中包含变量在 R 中一起出现的次数

问题描述

我有一个在不同研究中发生的变量列表。如果给定研究中存在每个变量,则用 1 编码,如果不存在则用 0 编码,表格如下所示:

        var1 var2 var3
study1   1    0    0
study1   1    0    1
study1   0    0    0    etc.

我的目标是创建一个表格,其中包含每个变量与其他每个变量一起出现的次数,即如下所示:

        var1 var2 var3
var1     -    2    4
var2     2    -    1
var3     4    0    -    etc.

如何在 R 中执行此操作?

我试图寻找指南或类似的问题,但结果是空的。

预先感谢您的帮助!

解决方法

以下代码计算每个变量与其他每个变量一起出现的次数,并将它们放入对称矩阵中。对角线条目为 -1。

df=data.frame(var1=c(1,1,0),var2=c(1,var3=c(0,1))
df

  var1 var2 var3
1    1    1    0
2    1    0    1
3    0    0    1

library(dplyr)
mat=diag(-1,ncol(df))
for (i in 1:(ncol(df)-1)) {
  for (j in (i+1):ncol(df)) {
      num=filter(df,all_of(df[,i])==1 & all_of(df[,j])==1) %>% nrow()
      mat[i,j]=num
      mat[j,i]=num
  }
}
mat

     [,1] [,2] [,3]
[1,]   -1    1    1
[2,]    1   -1    0
[3,]    1    0   -1

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...