0

我正在尝试使用 Unix 服务器上的双向和 statnet 套件(由网络、sna 和其他几个包组成)来分析 R 中 2 模式网络的加权 1 模式投影。使用二分代数和矩阵代数的混合投影可以正常工作,但是当我尝试使用下面的代码将值矩阵作为加权网络对象导入时,我似乎失去了原始矩阵中的值。

MNDocnet<-as.network(MNDocmatrix,matrix.type="adjacency",directed=FALSE, hyper=FALSE, loops=TRUE, multiple=FALSE, bipartite = FALSE, ignore.eval=FALSE, names.eval="patients")

感谢您的任何帮助,您可以提供。

4

1 回答 1

1

如果没有您的数据结构,很难准确地知道,但这种语法对我来说是正确的。这是一个例子

制作样本输入数据

> adjmat<-matrix(c(0,1,2,3,0,4,5,6,0),ncol=3)
> adjmat
     [,1] [,2] [,3]
[1,]    0    3    5
[2,]    1    0    6
[3,]    2    4    0

将矩阵转换为网络对象

> test<-as.network(adjmat,matrix.type='adjacency',ignore.eval=FALSE,names.eval='sample')

打印名为“样本”的属性的边缘值

> test%e%'sample'
[1] 1 2 3 4 5 6

请注意,如果要将其转换回有值矩阵,则需要为其提供提供值的属性的名称:

> as.matrix(test)
  1 2 3
1 0 1 1
2 1 0 1
3 1 1 0

对比

> as.matrix(test,attrname='sample')
  1 2 3
1 0 3 5
2 1 0 6
3 2 4 0
于 2014-09-29T22:08:44.830 回答