我试图在Unix服务器上使用bipartite和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")
感谢您提供的任何帮助。
答案 0 :(得分: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')
打印名为'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
VS
> as.matrix(test,attrname='sample')
1 2 3
1 0 3 5
2 1 0 6
3 2 4 0