2017-07-01 2 views

Répondre

0

En utilisant factor et ajouter un 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 
+0

Désolé et merci pour votre temps, mais ceci est un exemple d'un réseau énorme et n'est pas applicable pour les grands ensembles de données. – minoo

+2

Alors pouvez-vous expliquer votre question un peu plus en détail? – Wen

+0

@minoo [ici] (https://solomonmessing.wordpress.com/2012/09/30/working-with-bipartiteaffiliation-network-data-in-r/) est un exemple de la façon de construire une matrice creuse – lukeA

0
df<-cbind(df,1) 

require(qdapTools) 
incidence<-df[rep(seq_len(nrow(df)), df[,'1']), c('A', 'B')] %>% 
{split(.[,'B'], .[,'A'])} %>% 
    mtabulate()