分配一个已填充的矩阵到一个未填充的矩阵
问题描述:
我有一个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()
有趣的,谢谢。那么是不是可以在'data.frame'的每个单元中存储一个矩阵,然后呢? – 2014-10-05 14:48:30
号一个'data.frame'的每个单元格可以包含1个单个值(数字/字符/逻辑的)但不是很多(矩阵,列表,其它data.frames)。但是,当然,您可以创建一个100x100的矩阵,并为其分配100个大小为10x10的矩阵(彼此旁边/下面)。 – 2014-10-05 17:28:55