如何创建关联矩阵

时间:2016-05-31 18:49:01

标签: r matrix

我想用R.
创建一个关联矩阵 我有一个包含3列的文件,如:

#   id  x   y
# 1  A 22   2
# 2  B  4  21
# 3  C 21 360
# 4  D 26   2
# 5  E 22  58
# 6  F  2 347

我想要一个矩阵(没有col和行名称):

#   2 4 21 22 26 58 347 360
# A 1 0  0  1  0  0   0   0
# B 0 1  1  0  0  0   0   0
# C 0 0  1  0  0  0   0   1
# D 0 1  0  0  1  0   0   0
# E 0 0  0  1  0  1   0   0
# F 1 0  0  0  0  0   1   0

数据

df1 <- structure(list(id = c("A", "B", "C", "D", "E", "F"),
                      x = c(22L, 4L, 21L, 26L, 22L, 2L),
                      y = c(2L, 21L, 360L, 2L, 58L, 347L)),
                 .Names = c("id", "x", "y"), class = "data.frame", row.names = c(NA, -6L))

2 个答案:

答案 0 :(得分:3)

我们可以fetchedResultsController.fetchedObjects?.count数据集并尝试使用melt

table

或仅使用library(reshape2) table(melt(df1, id.var="id")[-2])

base R

答案 1 :(得分:2)

您可以使用cbind.data.frame()table()功能

> table(cbind.data.frame(ID=df1$id,Result=c(df1$x,df1$y)))
             Result
  ID  2 4 21 22 26 58 347 360
   A  1 0  0  1  0  0   0   0
   B  0 1  1  0  0  0   0   0
   C  0 0  1  0  0  0   0   1
   D  1 0  0  0  1  0   0   0
   E  0 0  0  1  0  1   0   0
   F  1 0  0  0  0  0   1   0