【发布时间】:2015-02-13 14:59:10
【问题描述】:
我对此有疑问:
我需要创建一个矩阵列表。这是一个数据框:
data=data.frame("Node"=c(1:5), posx=c(2,3,6,8,1), posy=c(1,1,4,7,8))
Node posx posy
1 1 2 1
2 2 3 1
3 3 6 4
4 4 8 7
5 5 1 8
现在我想创建一个矩阵列表。带循环。我想创建这样的矩阵列表:
l=list(l1,l2,l3,l4,l5)
地点:
l1=cbind(c(2),c(1))
l2=cbind(c(3),c(1))
l3=cbind(c(6),c(4))
l4=cbind(c(8),c(7))
l5=cbind(c(1),c(8))
这是我的尝试:
for (i in 1:(data$Node) ) {
l=list(cbind(c(data$posx[i]), (data$posy[i])))
}
【问题讨论】:
-
我想你想要的新问题是
list2env(setNames(lapply(split(as.matrix(data[,-1]),row(data)[,1]), matrix, ncol=2), paste0('mat', 1:nrow(data))), envir=.GlobalEnv)然后检查mat1,mat2 -
是的,非常感谢!对于这个不太好的问题,我深表歉意。
-
没问题,我对你真正想要的东西感到困惑。但是,我认为最好将它放在一个列表中而不是作为单个矩阵