我已经找到了许多解决方案,但没有这种方式。我有一个矩阵列表,需要将它们作为矢量。我可以拿出每个元素,命名它,然后把它放在一个向量中。但我确信有更好的方法!
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))
这就是我想用它们做的事情。
答案 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))