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'的列。 –