将数据转换为网络矩阵
convert data to matrix for a network
我有一个包含 30k 行的大型数据集,如下所示:
patno Inentorname
1001 A
1001 B
1002 A
1002 B
1003 C
1004 D
1004 E
我想要得到的是这样的:
A B C D E
A 0 2 0 0 0
B 2 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 1
E 0 0 0 1 0
有没有简单的方法可以在 R 或 python 中得到这个?
假设 DF 在末尾的注释中可重复显示
tab <- crossprod(table(DF))
diag(tab) <- 0
tab
给予:
Inentorname
Inentorname A B C D E
A 0 2 0 0 0
B 2 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 1
E 0 0 0 1 0
备注
Lines <- "
patno Inentorname
1001 A
1001 B
1002 A
1002 B
1003 C
1004 D
1004 E"
DF <- read.table(text = Lines, header = TRUE)
我有一个包含 30k 行的大型数据集,如下所示:
patno Inentorname
1001 A
1001 B
1002 A
1002 B
1003 C
1004 D
1004 E
我想要得到的是这样的:
A B C D E
A 0 2 0 0 0
B 2 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 1
E 0 0 0 1 0
有没有简单的方法可以在 R 或 python 中得到这个?
假设 DF 在末尾的注释中可重复显示
tab <- crossprod(table(DF))
diag(tab) <- 0
tab
给予:
Inentorname
Inentorname A B C D E
A 0 2 0 0 0
B 2 0 0 0 0
C 0 0 0 0 0
D 0 0 0 0 1
E 0 0 0 1 0
备注
Lines <- "
patno Inentorname
1001 A
1001 B
1002 A
1002 B
1003 C
1004 D
1004 E"
DF <- read.table(text = Lines, header = TRUE)