带有在R中包含矩阵的列的data.frame
我正在尝试将一些矩阵放在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字段是矩阵列值的列表。
因此,如何获得包含矩阵的数据帧?
谢谢 !
没有找到相关结果
已邀请:
4 个回复
肉簧咸缮
这是奇怪的后门解决方案。创建一个列表,将其类更改为
,然后(必需)手动设置
和
(如果您不执行这些最后步骤,数据仍将保留在对象中,但它将像打印出来一样它有零行...)
喷乡顾沥沪
然后分配矩阵。无需使用列表的类或使用
函数。
勘掸府迫路
进行工作。 首先,让我们创建一个矩阵,将其称为Spectrum_mat,然后将其称为response_var1。
现在,我们将向量response_var1放入新的数据帧中-称之为df。
去检查,
埃庐
一个向量(
,带回收)和一个矩阵(
)。 IMO,如果您确实想绑定不同的数据结构,则最好使用
或
(当尺寸一致时,不允许将数字和因子值混合使用)。否则,只要将行的行数相同,就可以将矩阵矩阵“ѭ15”到现有的data.frame上。例如
结果显示
如果您计划使用尺寸不同的矩阵,并且提供与外部数据相同的方式(针对行)进行组织,则列表将更易于使用。这是一个例子:
您还可以使用
(用于列表)和
(用于数组)功能。