【发布时间】:2016-05-01 07:07:45
【问题描述】:
如果数据框列中单元格的值匹配,我正在尝试用“1”填充邻接矩阵。 “1”的位置基于同一行中的对应值。
更准确地说:数据框 pat1
ID PATID SUB
1 2 2A
2 2 2B
3 3 2C
4 3 2D
我想用相应的行/列填充空矩阵patmat1 中的矩阵单元[2A,2B]、[2B,2A]、[2C,2D] 和[2D,2C]。自 PATID[1]=PATID[2] 和 PATID[3]=PATID[4] 以来分别带有“1”的名称。
所需的输出是 matrix(data = c(0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0), nrow=4 , byrow=T) with colnames
我已经搜索过,但还没有找到方法。
【问题讨论】:
-
不清楚。你能显示预期的输出吗?
patmat1的维度是多少? -
@akrun 所需的输出是 matrix(data = c(0,1,1,0), nrow=2, byrow=T) with colnames
-
请在您的帖子中更新
-
你可以试试
acast(pat1, ID~ID, value.var="SUB", length)fromlibrary(reshape2) -
谢谢。我现在已经尝试过了,但它只会改变对角线的值。它应该使用“1”填充 [2A,2B] 和 [2B,2A] 单元格,并且不应更改对角线。