Networking 如何将顶点属性仅指定给statnet中二部网络中的一种模式?

Networking 如何将顶点属性仅指定给statnet中二部网络中的一种模式?,networking,attributes,vertex,bipartite,statnet,Networking,Attributes,Vertex,Bipartite,Statnet,我目前正在使用一个具有两种不同模式和两组不同属性的二部网络。所以从第1行到第5行是一种模式,演员a、B和C是不同的模式,他们形成了一些以a 1为标记的连接 a<-replicate( 3, numeric(5) ) b<-apply(a, c(1,2), function(x) sample(c(0,1),1)) rownames(b) <- rownames(c(1,2,3,4,5)) colnames(b) <-colnames(c("

我目前正在使用一个具有两种不同模式和两组不同属性的二部网络。所以从第1行到第5行是一种模式,演员a、B和C是不同的模式,他们形成了一些以a 1为标记的连接

    a<-replicate( 3, numeric(5) )
    b<-apply(a, c(1,2), function(x) sample(c(0,1),1))
    rownames(b) <- rownames(c(1,2,3,4,5))
    colnames(b) <-colnames(c("A","B","C"))
    b
            A    B    C
    [1,]    1    0    1
    [2,]    1    0    1
    [3,]    0    0    0
    [4,]    0    1    1
    [5,]    1    1    0
c<-as.network(b, directed=T, bipartite =3)

    e<-c('A',"B","C")
    f<-c('tall','short','tall')
    g<-data.frame(e,f)
    colnames(g)<-c('person','height')
    g
      person height
          A   tall
          B  short
          C   tall
但是我得到了以下错误

Vertex ID does not correspond to actual vertex in set.vertex.attribute.
我想我明白了。我自己在使用二部网络时也遇到了同样的问题,我从iGraph教程中借用了一些代码

set.vertex.attribute(c,attrname = "height", 
                  value = as.character(g$height), 
                  v= match(c %v% "vertex.names",g$person))
这对我很有效,我不确定你是否需要as.character。您使用的名称是statnet,通过“vertex.names”来表示所需的顶点

set.vertex.attribute(c,attrname = "height", 
                  value = as.character(g$height), 
                  v= match(c %v% "vertex.names",g$person))