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

如何用R建立二元关系矩阵?,r,matrix,R,Matrix,我有一个data.frame,看起来像这样。例如: A;a B;a C;b D;c A;b A;d C;c 第一个位置=键,第二个位置=值。If键;值,则为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正如@Wen在评论中指出的,从文件中读取数据(不包含头行): 并使

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

A;a 
B;a 
C;b 
D;c
A;b
A;d
C;c 
第一个位置=键,第二个位置=值。If键;值,则为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正如@Wen在评论中指出的,从文件中读取数据(不包含头行):

并使用
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
>t2t2[t2>1]t2
a、b、c、d
A 110 1
B 100 0 0
C01110
D 0 0 1 0

您必须为您的问题付出一些努力,您采取了哪些步骤?所以这不是一个“问我,给我答案”的常见问题。你得试试。我同意,你试过什么?我想要这个表格格式;请尝试
?表格
表格(dt$V1,dt$V2)
?谢谢更新。两个选择:1。使用逻辑操作将>1值转换为1:
tab=table(mydb2);(选项卡>0)+0
,2。在制表前删除重复行
表(unique(mydb2))
> 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
> 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