0

我有一个这样的边缘列表

a   1
b   2
c   3
a   2
b   1

我想建立它的关联矩阵,就像:

    a   b   c   d
1   1   1   0   0
2   1   1   0   0
3   0   0   1   0
4   0   0   0   0

有什么想法吗?

4

2 回答 2

0
df<-cbind(df,1)

require(qdapTools)
incidence<-df[rep(seq_len(nrow(df)), df[,'1']), c('A', 'B')] %>%
{split(.[,'B'], .[,'A'])} %>%
  mtabulate()
于 2017-07-02T13:19:51.900 回答
0

使用factor并再添加一个 lvl

    df=read.table(text='A B
               a   1
               b   2
               c   3
               a   2
               b   1',header=T)

    levels(df$A)=c(levels(df$A),'d')
    df$B=as.factor(df$B)
    levels(df$B)=c(levels(df$B),'4')
    subset=table(df$B,df$A)

> subset

    a   b   c   d
1   1   1   0   0
2   1   1   0   0
3   0   0   1   0
4   0   0   0   0
于 2017-07-01T14:02:58.570 回答