回复 第7楼 的 yanlinlin82:
有时候这种不规则形式是比较搞的。
<br />
dat = list(A = c('a','b','d'),B = c('a','c'),C = c('b','e'),D = c('c','d','e'))<br />
f = unlist(dat)<br />
g = names(f)</p>
<p>h = t(sapply(unique(f),function(i) g[which(f == i)]))<br />
h = noquote(gsub('\\d','',h))<br />
h<br />
[,1] [,2]<br />
a A B<br />
b A C<br />
d A D<br />
c B D<br />
e C D<br />
然后在把这种格式变为这样:
<br />
A = matrix(0, nrow = length(dat), ncol = length(dat),dimnames = list(LETTERS[1:length(dat)], LETTERS[1:length(dat)]))<br />
A[h] = 1<br />
t(A) + A<br />
A B C D<br />
A 0 1 1 1<br />
B 1 0 0 1<br />
C 1 0 0 1<br />
D 1 1 1 0<br />
据说这样折腾可以提高运算速度,鬼知道是怎么回事。
</p>