将矩阵列表转换为向量

时间:2014-12-02 11:34:47

标签: r list matrix vector

我已经找到了许多解决方案,但没有这种方式。我有一个矩阵列表,需要将它们作为矢量。我可以拿出每个元素,命名它,然后把它放在一个向量中。但我确信有更好的方法!

zerooklein <- lapply(1:10, function(x){genweb(10, 5, dens=2)})
zeroomittel <- lapply(1:10, function(x){genweb(10, 20, dens=2)})
zeroogroß <- lapply(1:10, function(x){genweb(10, 80, dens=2)})

这些是我的清单。

size <- c(this should contain all the singel matrices )
sizef <- sapply(size, function(x) nested(get(x), method="ALL"))
plot(capscale(formula = scale(sizef) ~ 1))

这就是我想用它们做的事情。

1 个答案:

答案 0 :(得分:0)

如果您想使用LISTS的名称,请注意'zeroo ...'对象不是向量,您可以显式创建该向量。整个过程中唯一的向量是以下一行:

size <- c("zerooklein", "zeroomittel", "zeroogroß")

现在剩下的就是所有列表和矩阵。您的每个'zeroo ...'对象都是一个矩阵列表,因此必须循环传递给nested。因此,您不仅需要遍历每个'zeroo ...'对象,还要遍历'zeroo ...'中的每个矩阵,因此需要双循环。以下调用完成了这项工作。

sizef <- lapply(size, function(x) sapply(get(x), function(y) nested(y, method="ALL")))

您不能只使用两个sapply语句,否则它会自动“结合”您的搜索结果,而这似乎不是您的目标。因此,此时您有三个矩阵的列表。您可以将这些与do.call合并在一起。

size_merged <- do.call("cbind", sizef)

现在您可以绘制最终矩阵

plot(capscale(scale(size_merged) ~ 1))