我有一个这样的边缘列表
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
有什么想法吗?
df<-cbind(df,1)
require(qdapTools)
incidence<-df[rep(seq_len(nrow(df)), df[,'1']), c('A', 'B')] %>%
{split(.[,'B'], .[,'A'])} %>%
mtabulate()
使用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