分配一个已填充的矩阵到一个未填充的矩阵

问题描述:

我有一个data frame我构造如下:分配一个已填充的矩阵到一个未填充的矩阵

m <- matrix("matrix", nrow = 2, ncol = 2) 
dm <- data.frame(m) 

我的理解是,这将使得dm的数据帧具有2列和2行,其中的每个元素将是一个矩阵。我的问题是,我有一个方法返回一个包含一串数字的矩阵,但是当我尝试将此矩阵分配给其中一个“空”矩阵时,可以使用下面的代码:dm GetPopulatedMatrix()

我得到以下错误:

replacement has 873 rows, data has 1

我假设这是因为我想分配给矩阵不是大小,因为这是矩阵相同由GetPopulatedMatrix返回,但我不知道如何初始化dm与4个矩阵(假设2x2 data frame)的正确大小。假设我会提前知道由GetPopulatedMatrix返回的矩阵的确切维数。任何想法如何我可以初始化dm,以便我稍后能够为其元素分配填充矩阵?

我知道如何用指定数量的行和列初始化matrix,当矩阵是data frame或其他集合的元素时,我只是不知道该怎么做。

提前致谢!我是R新手,所以我确信这是一个愚蠢的问题,但这是在我*沮丧地摧毁我的电脑之前的最后一招。

你有关的dm内容第一个假设是错误的。您的矩阵m是一个2x2矩阵,每个单元包含字符串“矩阵”。 dm具有相同的内容,但是是data.frame

当每次调用GetPopulatedMatrix()都会返回一个矩阵,但您并不知道这些矩阵的维数时,我建议您将结果保存在列表中。

results <- list() 
results[[1]] <- GetPopulatedMatrix() 
results[[2]] <- GetPopulatedMatrix() 
+0

有趣的,谢谢。那么是不是可以在'data.frame'的每个单元中存储一个矩阵,然后呢? – 2014-10-05 14:48:30

+1

号一个'data.frame'的每个单元格可以包含1个单个值(数字/字符/逻辑的)但不是很多(矩阵,列表,其它data.frames)。但是,当然,您可以创建一个100x100的矩阵,并为其分配100个大小为10x10的矩阵(彼此旁边/下面)。 – 2014-10-05 17:28:55