【发布时间】:2011-05-26 19:01:37
【问题描述】:
我正在尝试将一些矩阵放入 R 中的数据框中,例如:
m <- matrix(c(1,2,3,4), nrow=2, ncol=2)
df <- data.frame(id=1, mat=m)
但是当我这样做时,我会得到一个 2 行 3 列的数据框,而不是 1 行 2 列的数据框。
阅读文档,我必须使用 I() 转义我的矩阵。
df <- data.frame(id=1, mat=I(m))
str(df)
'data.frame': 2 obs. of 2 variables:
$ id : num 1 1
$ mat: AsIs [1:2, 1:2] 1 2 3 4
据我了解,数据框包含矩阵的每一行的一行,而 mat 字段是矩阵列值的列表。
那么,如何获取包含矩阵的数据框?
谢谢!
【问题讨论】:
-
尽管有我的回答,但我对另一位受访者有些同情:你为什么要这样做?也许我们可以帮助您找到更好的 R 习惯用法...
-
我有输入和输出为矩阵的数据。我希望每个体验都是数据框的一行。
-
tidyverse 系列软件包的最新进展,尤其是 purrr,使得创建任意数据类型的嵌套列以用于函数式编程非常有用。矩阵的嵌套列可用作将每个矩阵转换为更简单结构的准备步骤。