【发布时间】:2014-05-15 20:55:51
【问题描述】:
我有一个矩阵列表,这些矩阵是使用 R 的“network”包中的 egoextract 函数从更大的网络中提取的。我需要将具有不同行数/列数的所有(正方形)矩阵合并到一个更大的矩阵中,该矩阵包含先前那些的所有信息以及缺少信息的地方的“NA”(没关系)。
我尝试了 cbindX 函数,但它只沿列维度而不是沿行,因此乘积是一个矩形矩阵。
这是我目前所做的
require(network)
require(statnet)
require(gdata)
samplenet <- as.network.numeric(100, directed = TRUE, density = 0.03)
plot(samplenet)
set.vertex.attribute(samplenet, "name", 1:100)
names <- get.vertex.attribute(samplenet, "name")
rv1 <- sample(names,1) #selects a random vertex
rv2 <- get.neighborhood(samplenet, rv1, type = c("combined"), na.omit = TRUE) #selects the neighborhood around selected vertex
rv <- unique(unlist(merge(rv1, rv2))) #combines vertex + neighborhood into one list without duplicates
extraction <- unique(ego.extract(samplenet, ego = rv, neighborhood = c("combined")))
df <- data.frame(extraction) -- error due to different number of rows/columns
另类(导致矩形矩阵,不够用)
df <- cbindX(extraction[[1]], extraction[[2]], extraction[[3]])
感谢很棒的 R 社区!!!
【问题讨论】:
标签: r list networking matrix dataframe