你得到結果(2行×3列)是什麼是要自R意料之中的,因爲它相當於cbind
向量(id
,具有回收利用)和一個矩陣(m
)。
IMO,這將是更好地使用list
或array
(當尺寸相一致,不允許數字和因素值的組合),如果你真的要綁定不同的數據結構。否則,只需將cbind
矩陣轉換爲現有的data.frame(如果兩者具有相同的行數)將執行該作業。例如
x1 <- replicate(2, rnorm(10))
x2 <- replicate(2, rnorm(10))
x12l <- list(x1=x1, x2=x2)
x12a <- array(rbind(x1, x2), dim=c(10,2,2))
,結果讀
> str(x12l)
List of 2
$ x1: num [1:10, 1:2] -0.326 0.552 -0.675 0.214 0.311 ...
$ x2: num [1:10, 1:2] -0.164 0.709 -0.268 -1.464 0.744 ...
> str(x12a)
num [1:10, 1:2, 1:2] -0.326 0.552 -0.675 0.214 0.311 ...
列表是更容易,如果你打算使用不同尺寸的矩陣使用,並提供他們以同樣的方式組織(對於行)作爲外部數據框架,您可以輕鬆地將它們分組。這裏有一個例子:
df1 <- data.frame(grp=gl(2, 5, labels=LETTERS[1:2]),
age=sample(seq(25,35), 10, rep=T))
with(df1, tapply(x12l$x1[,1], list(grp, age), mean))
您還可以使用lapply
(用於列表)和apply
(數組)的功能。
來源
2011-05-26 19:16:09
chl
儘管我的回答,我有些同情與其他受訪者:你爲什麼要這麼做?也許我們可以幫助你找到一個更好的R語言... – 2011-05-26 22:20:06
我有輸入和輸出爲矩陣的數據。我希望每個經驗都是一排數據框。 – Scharron 2011-05-27 10:13:41
最近在tidyverse系列的軟件包中,尤其是purrr的發展,使得爲函數式編程創建任意數據類型的嵌套列很有用。矩陣的嵌套列可用作將每個矩陣轉換爲更簡單的結構的準備步驟。 – 2017-04-13 20:23:14