R 将表转换为相互依赖/依赖矩阵
你好,我希望你做得很好:) 我的原始数据格式如下所示。abc公司是技术公司R 将表转换为相互依赖/依赖矩阵,r,excel,statistics,R,Excel,Statistics,你好,我希望你做得很好:) 我的原始数据格式如下所示。abc公司是技术公司 //T1 T2 T3 T4 a 1 1 0 1 b 1 0 1 0 c 1 1 0 1 d 0 1 1 1 我希望有一个相互依赖矩阵,如下所示: // T1 T2 T3 T4 T1 0 2. 1. 2 T2 2. 0. 1. 3 T3 1 1 0 1 T4 2 3 1. 0 基本上,我想计算有多少公司提供了多少相同的技术对(T1-T2或T1-T4),这代表了矩阵中的价值
//T1 T2 T3 T4
a 1 1 0 1
b 1 0 1 0
c 1 1 0 1
d 0 1 1 1
我希望有一个相互依赖矩阵,如下所示:
// T1 T2 T3 T4
T1 0 2. 1. 2
T2 2. 0. 1. 3
T3 1 1 0 1
T4 2 3 1. 0
基本上,我想计算有多少公司提供了多少相同的技术对(T1-T2或T1-T4),这代表了矩阵中的价值
示例:3家公司(a、c、d)同时提供技术t2和t4
您能告诉我如何在excel或R:)中执行此操作吗?这里有一种在R中执行此操作的方法-
count_1s <- function(x, y) sum(df[[x]] == 1 & df[[y]] == 1)
n <- 1:nrow(df)
res <- outer(n, n, Vectorize(count_1s))
diag(res) <- 0
dimnames(res) <- list(colnames(df), colnames(df))
res
# T1 T2 T3 T4
#T1 0 2 1 2
#T2 2 0 1 3
#T3 1 1 0 1
#T4 2 3 1 0
计数\u 1s数据T3 1 0 1
#>T4 2 3 1 0
由Excel中的(v2.0.0)于2021-06-10创建,此公式向下和横向复制:
=(COUNTIFS(INDEX($B$2:$E$5,0,COLUMN(A1)),1,INDEX($B$2:$E$5,0,ROW(A1)),1)*(ROW(A1)<>COLUMN(A1)))
=(COUNTIFS(索引($B$2:$E$5,0,列(A1)),1,索引($B$2:$E$5,0,行(A1)),1)*(行(A1)列(A1)))
=(COUNTIFS(INDEX($B$2:$E$5,0,COLUMN(A1)),1,INDEX($B$2:$E$5,0,ROW(A1)),1)*(ROW(A1)<>COLUMN(A1)))