【发布时间】:2013-11-07 16:42:25
【问题描述】:
我有几个矩阵,让我们简单地说我有 3 个矩阵。我想创建一个列表,然后使用 rbind 将一个放在另一个上。 如果我手动使用以下代码,它可以工作:
list<-list(matrix1,matrix2,matrix3)
test<-do.call("rbind",list)
我得到了一个 97947 行乘 4 列的矩阵,这正是我想要的。 但是如果我做一个循环,它就不起作用:
list2<-list()
for (i in 1:3)
{
y<-paste0("matrix",x)
list2[[x]] <- y
}
test2<-do.call("rbind",list2)
我得到一个 3x1 字符矩阵 ??? 有人可以指出我的错误吗? 任何 cmets 将不胜感激。 谢谢!!!!
【问题讨论】:
-
我知道这可能看起来很烦人,但第一种方法有什么问题?!效率更高。我感觉您可能有很多矩阵,并且首先需要一种自动化方法将它们放入列表中。试试
list <- mget( ls( pattern = paste0( "matrix , 1:3 ) ) ) -
@SimonO101 我猜我不是唯一没有测试我的代码的人。 ;)
-
@Dr.Mike Dammit 你是完全正确的。抱歉,这里不需要模式匹配。如果您的矩阵有一组顺序名称,您只需要做更简单的
list <- mget( paste0( "matrix" , 1:3 ) ) -
非常感谢!你是对的,使用 mget 更容易,非常感谢!!!!!!