0
我在理解如何用矩阵初始化数据帧时遇到了一些问题。当我执行以下命令:从矩阵初始化数据帧
m1 = cbind(1:5,11:15)
m2 = cbind(21:25, 31:35)
d = data.frame(m1)
d$m2 = m2
如何创建直接创建一个m1
数据框,为此df$m1
将返回一个矩阵,作为df$m2
确实在我的例子吗?
我在理解如何用矩阵初始化数据帧时遇到了一些问题。当我执行以下命令:从矩阵初始化数据帧
m1 = cbind(1:5,11:15)
m2 = cbind(21:25, 31:35)
d = data.frame(m1)
d$m2 = m2
如何创建直接创建一个m1
数据框,为此df$m1
将返回一个矩阵,作为df$m2
确实在我的例子吗?
使用I
指定应被视为矩阵“原样”
> d<-data.frame(m1=I(m1),m2=I(m2))
> d$m1
[,1] [,2]
[1,] 1 11
[2,] 2 12
[3,] 3 13
[4,] 4 14
[5,] 5 15
> d$m2
[,1] [,2]
[1,] 21 31
[2,] 22 32
[3,] 23 33
[4,] 24 34
[5,] 25 35
也许创建一个ID变量数据帧,然后再去做'd $ M1 < - m1'?但是我“米不知道你想利用矩阵数据框做什么。是否列表满足您的需求更好? – Heroka
你得到你想要的'受到胁迫DF $ m2'。举例来说,这是不行的:'M1 = cbind(1:5,11:15); M2 = cbind(21:26,31:36); d = data.frame(M1); d $ M2 = m2' 如果你想有一个'data.frame'是块矩阵,我建议你坚持阵列(如矩阵或多维数组)。 **什么是你真正想干什么?** –
我只是想理解语法,我在没有了解后果的情况下做了'd $ m2 <-m2',一个很好的副作用是'熔化(d $ m2)',这与行的'expand.grid'相反和'm2'的列。 –