如何用R创建二元关系矩阵?

时间:2017-10-27 18:30:32

标签: r matrix

我有一个看起来像这样的data.frame。例如:

A;a 
B;a 
C;b 
D;c
A;b
A;d
C;c 

第一个pos = key,第二个pos = value。如果关键;值,然后是1,如果不是那么0;

我想从数据创建二进制矩阵,我想有这种表格格式:

0 a b c d
A 1 1 0 1  
B 1 0 0 0
C 0 1 1 0
D 0 0 0 1

我可以创建矩阵,但不能创建二元martix,因为有些行是重复的 我的代码:

 mydb2 <- structure(list(Key = c("A","B","C","D","E","A","A"), 
                   Value = c("b","c","e","a","f","g","g")), 
              .Names = c("", ""), class = "data.frame", 
              row.names = c(NA, -6L))
table(mydb2)

然后出去

enter image description here

我该如何解决?

1 个答案:

答案 0 :(得分:1)

正如@Wen在评论中指出的那样,从文件中读取数据(不包含标题行):

> t = read.table('test.txt',sep=';')
> t
  V1 V2
1  A  a
2  B  a
3  C  b
4  D  c
5  A  b
6  A  d
7  C  c

并使用table命令并通过将值大于1的所有元素更新为值1将其转换为二进制矩阵:

> t2 <- table(t$V1,t$V2)
> t2[t2 > 1] <- 1
> t2

    a b c d
  A 1 1 0 1
  B 1 0 0 0
  C 0 1 1 0
  D 0 0 1 0